簡體   English   中英

在Winform中讀取db后的帶有列類型超鏈接的C#datagridview

[英]c# datagridview with a column type hyperlink after db read in winform

我有這種情況:

查詢后,我在DataSet中有此表:

Name | Module | Date | Approvation
xx   |  xxx   | xxx  | xxxxxxxx
yy   |  yyy   | yyy  | yyyyyyyyy 


        DataTable dt = new DataTable();
        //  dgvApprovazione is a datagridview
        dgvApprovazione.DataSource = dt

現在在這種情況下,我在4列中鍵入text(string):Name,Module,Date,Approvation ...

我希望“模塊”列是文件鏈接 ...然后“ xxx”是鏈接,“ yyy”是鏈接...等。

我已經看過DataGridViewLinkColumn,但我不知道這是否是一個好方法以及如何設置..

DataGridViewLinkColumn是必經之路,實現它應該很簡單:

this.dataGridView1.CellContentClick += DataGridView1_CellContentClick;
this.dataGridView1.DataBindingComplete += DataGridView1_DataBindingComplete;

private void DataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
    if (this.dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex] is DataGridViewLinkCell)
    {
        System.Diagnostics.Process.Start(this.dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value as string);
    }
}

private void DataGridView1_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
{
    foreach (DataGridViewRow row in this.dataGridView1.Rows)
    {
        row.Cells["Module"] = new DataGridViewLinkCell();
    }
}

該答案的主要來源來自此SO答案 ,減去條件檢查。 其他答案也有參考價值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM