我有一个DataGridView
在虚拟模式下使用的。在测试中,我创建了一些行为很奇怪的版本。
这是方法体:
private int i = 0;
private void dgData_CellValueNeeded(object sender,
DataGridViewCellValueEventArgs e) {
if (e.ColumnIndex == 0) {
i++;
}
System.Console.WriteLine
("cell value needed call: " + e.ColumnIndex + ", "
+ e.RowIndex + ", "+i);
e.Value = i;
}
这会导致所有单元格都调用该调用。当我替换e.Value = i
为 时e.Value = e.RowIndex
,只会调用视图中的单元格。
更新我发现该调用SetSelected
调用了所有单元格。但是,仅当e.Value
设置为任意值时。
这怎么可能?