如何触发已创建的复选框更改事件c#

如何触发已创建的复选框更改事件c#,c#,events,checkbox,datagridview,C#,Events,Checkbox,Datagridview,我在gridview中创建了这些复选框,以允许用户选择多行。我的问题是,当复选框被点击时,它们应该为每个点击的复选框存储信息。我把断点放在里面,事件永远不会被触发。为了运行此事件,我需要调用此功能吗?我的印象是,这就像任何其他事件一样,只是在触发它时才运行。我还没有找到针对此类问题的通用帮助,它似乎是更具体的问题。关于如何让我的事件正确触发,您是否有任何帮助或建议 在表单加载时,这是建立的 ckBox = new CheckBox(); //Get the column header cell

我在gridview中创建了这些复选框,以允许用户选择多行。我的问题是,当复选框被点击时,它们应该为每个点击的复选框存储信息。我把断点放在里面,事件永远不会被触发。为了运行此事件,我需要调用此功能吗?我的印象是,这就像任何其他事件一样,只是在触发它时才运行。我还没有找到针对此类问题的通用帮助,它似乎是更具体的问题。关于如何让我的事件正确触发,您是否有任何帮助或建议

在表单加载时,这是建立的

ckBox = new CheckBox();
//Get the column header cell bounds
Rectangle rect = this.dropdeadGridView.GetCellDisplayRectangle(0, -1, true);
ckBox.Size = new Size(18, 18);
//Change the location of the CheckBox to make it stay on the header
ckBox.Location = rect.Location;
ckBox.CheckedChanged += new EventHandler(ckBox_CheckedChanged);
//Add the CheckBox into the DataGridView
this.dropdeadGridView.Controls.Add(ckBox);
这就是我声明chkbox_CheckChanged事件中发生的事情的地方

var rows = dropdeadGridView.Rows;

for (int j = 0; j < this.dropdeadGridView.RowCount; j++)
{
    this.dropdeadGridView[0, j].Value = this.ckBox.Checked;

    bool checkBoxValue = Convert.ToBoolean(dropdeadGridView.Rows[5].Cells[1].Value); 
    if (checkBoxValue)
    {
        values += rows[j].Cells[2] + ",";
        CurrentOrders = values;
    }
}
this.dropdeadGridView.EndEdit();
var rows=dropdeadGridView.rows;
对于(int j=0;j
希望您使用的是windows应用程序

此链接说明如何在gridview中添加复选框。更改选择时,将触发afteredit、validateedit等网格事件

我们在那里通过检查列编号(如果列编号与复选框列编号匹配)进行编码,执行您在那里的事件中提到的操作


我对winforms不太熟悉,我只使用了C1FlexGrid(windows grid中也会有类似的功能)

在挂起事件之前添加一个取消挂起事件调用

ckBox.CheckedChanged -= new EventHandler(ckBox_CheckedChanged);
大多数情况下,你的问题会得到解决