1

我有这种情况:

查询后我在 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 列输入文本(字符串):名称、模块、日期、批准...

我想要列模块是文件的链接...然后xxx是链接,yyy是链接...和其他..

我看过 DataGridViewLinkColumn 但我不知道这是否是一个好方法以及如何设置..

4

1 回答 1

2

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 answer,减去条件检查。其他答案也很丰富。

于 2016-03-16T16:13:25.893 回答