在datagridview中可以有两个不同的link类型的列吗?
本文关键字:link 类型 两个 datagridview | 更新日期: 2023-09-27 18:08:02
如果是这样,我们如何单独处理每个cellcontentclick事件?我在动态地添加列。这是我的代码:-dataGridViewShow.Columns.Add(new DataGridViewTextBoxColumn { HeaderText = "Date", DataPropertyName = "Date", CellTemplate = new DataGridViewTextBoxCell() });
DataGridViewLinkColumn toComputer = new DataGridViewLinkColumn();
toComputer.HeaderText = "Status";
toComputer.Name = "link1";
toComputer.UseColumnTextForLinkValue = true;
toComputer.Text = "Save to File";
toComputer.ActiveLinkColor = Color.White;
toComputer.LinkColor = Color.Blue;
toComputer.TrackVisitedState = true;
toComputer.VisitedLinkColor = Color.Green;
dataGridViewShow.Columns.Add(toComputer);
dataGridViewShow.CellContentClick += (SaveFileType_click);
DataGridViewLinkColumn toNet = new DataGridViewLinkColumn();
toLinx.HeaderText = " ";
toLinx.Name = "link2";
toLinx.UseColumnTextForLinkValue = true;
toLinx.Text = "Send to Net";
toLinx.ActiveLinkColor = Color.White;
toLinx.LinkColor = Color.Blue;
toLinx.TrackVisitedState = true;
toLinx.VisitedLinkColor = Color.Green;
dataGridViewShow.Columns.Add(toNet);
dataGridViewShow.CellContentClick += ("Don't know how this gets handled");
上面的代码确实显示链接类型的两个不同的列,但是我不能弄清楚我如何单独处理每个事件?
private void SaveFileType_click(object sender, DataGridViewCellEventArgs e)
{
selectedRow = e.RowIndex;
if (e.ColumnIndex == 0)
{
//some code goes here
}if (e.ColumnIndex == 1 && (string)dataGridViewShow[e.ColumnIndex, e.RowIndex].Value != "Complete")
{
//some code goes here
}
}
不能单独处理事件。需要处理OnCellClick
或CellContentClick
事件。然后使用DataGridViewCellEventArgs
对象e
,您可以获得被单击的列和行。根据选择的单元格,以不同的方式处理事件
public void dataGridView1_OnCellClick(object sender,
DataGridViewCellEventArgs e)
{
if (e.ColumnIndex == YourLinkColumnIndexA)
//some code goes here.
else if (e.ColumnIndex == YourLinkColumnIndexB)
//some code goes here.
}
就像前面那样,在代码中连接事件,但是只有一次。