Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.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# 为什么CommitteIt赢了';当单元格变脏时,是否触发cellValueChanged事件?_C#_Datagridview - Fatal编程技术网

C# 为什么CommitteIt赢了';当单元格变脏时,是否触发cellValueChanged事件?

C# 为什么CommitteIt赢了';当单元格变脏时,是否触发cellValueChanged事件?,c#,datagridview,C#,Datagridview,我遇到过这样的情况: 单击单元格时,数据源将在CellBeginEdit事件中重置,因此该单元格被标记为脏。然后触发CellContentClick事件,单元格被标记为Underty(如下所示)。就这点而言,我认为这将触发CellValueChanged事件,但它直接转到CellEndEdit事件。我检查了committedit函数,它表示系统将把更改提交到数据缓存。我以为这会触发单元格值更改事件,但事实并非如此。有人能详细说明一下吗?非常感谢 void gridRow_CellContentC

我遇到过这样的情况:

单击单元格时,数据源将在CellBeginEdit事件中重置,因此该单元格被标记为脏。然后触发CellContentClick事件,单元格被标记为Underty(如下所示)。就这点而言,我认为这将触发CellValueChanged事件,但它直接转到CellEndEdit事件。我检查了committedit函数,它表示系统将把更改提交到数据缓存。我以为这会触发单元格值更改事件,但事实并非如此。有人能详细说明一下吗?非常感谢

void gridRow_CellContentClick(object sender, DataGridViewCellEventArgs e)
    {
        if (gridRow.IsCurrentCellDirty)//First this is dirty
        {
            gridRow.CommitEdit(DataGridViewDataErrorContexts.Commit);
        }// After Commit, this is undirty
    }

单元格值是否真的发生了更改(或仅更改了单元格状态)?否则,将不会触发
CellValueChanged
事件。您好,单元格值已更改,但仍不会触发CellValueChanged事件单元格值的数据类型是什么?