在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
        }
    }

在datagridview中可以有两个不同的link类型的列吗?

不能单独处理事件。需要处理OnCellClickCellContentClick事件。然后使用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.
}

就像前面那样,在代码中连接事件,但是只有一次