Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Datagridview复选框没有';I don’在离开之前,不要把它算作支票_C#_Winforms_Checkbox_Datagridview - Fatal编程技术网

C# Datagridview复选框没有';I don’在离开之前,不要把它算作支票

C# Datagridview复选框没有';I don’在离开之前,不要把它算作支票,c#,winforms,checkbox,datagridview,C#,Winforms,Checkbox,Datagridview,我有Datagridview,有4列复选框和5行(如复选框矩阵)。当用户选中所需的复选框并按下“保存”按钮时,除非用户转到任何其他单元格(不更改任何内容,仅从该单元格移动),否则上次编辑的复选框不会更改。 我不知道如何解决这个问题 for (int i = 0; i < dgv_permissions.Rows.Count; i++) { paramList.Clear(); paramList.Add("uGrpPermissionModule", dgv_permiss

我有Datagridview,有4列复选框和5行(如复选框矩阵)。当用户选中所需的复选框并按下“保存”按钮时,除非用户转到任何其他单元格(不更改任何内容,仅从该单元格移动),否则上次编辑的复选框不会更改。 我不知道如何解决这个问题

for (int i = 0; i < dgv_permissions.Rows.Count; i++)
{
    paramList.Clear();
    paramList.Add("uGrpPermissionModule", dgv_permissions.Rows[i].Cells[0].Value.ToString());                    
    paramList.Add("uGrpRead", Convert.ToBoolean(dgv_permissions.Rows[i].Cells[1].Value.ToString()));
    paramList.Add("uGrpNew", Convert.ToBoolean(dgv_permissions.Rows[i].Cells[2].Value.ToString()));
    paramList.Add("uGrpUpdate", Convert.ToBoolean(dgv_permissions.Rows[i].Cells[3].Value.ToString()));
    paramList.Add("uGrpDelete", Convert.ToBoolean(dgv_permissions.Rows[i].Cells[4].Value.ToString()));
    paramList.Add("uGrpReports", Convert.ToBoolean(dgv_permissions.Rows[i].Cells[5].Value.ToString()));
    try
    {
        retval = DBFucntions.doWriteCommand(sqlStr, paramList);                 
    }
    catch (Exception ex)
    {
        MessageBox.Show("Error");
    }
}
for(int i=0;i
我认为这与复选框列实际上没有合适的编辑控件有关。每当遇到此问题时,我都会对
DataGridView
上的
CurrentCellDirtyStateChanged
事件使用以下事件处理程序:

private void DataGridView_CurrentCellDirtyStateChanged(object sender, EventArgs e)
{
    if (this.mDataGridView.IsCurrentCellDirty &&
        (this.mDataGridView.CurrentCell.OwningColumn == /* check box column */))
    {
        this.mDataGridView.CommitEdit(DataGridViewDataErrorContexts.Commit);
    }
}

我已经编辑了你的标题。请参阅“”,其中的共识是“不,他们不应该”。