如何在WinForm DataGridView事件处理程序中引用列名而不是e.ColumnIndex?

Ton*_*ich 7 datagridview winforms

WinForm的一些事件处理程序DataGridView具有DataGridViewCellEventArgs参数和该参数ColumnIndex的属性.

ColumnIndex 是表示列的序数#的数字.

有没有办法从该参数而不是列索引引用列名?

所以不要这样做:

if (e.ColumnIndex == 1)
Run Code Online (Sandbox Code Playgroud)

我更喜欢这样的东西:

if (e.ColumnName == "CustomerName")
Run Code Online (Sandbox Code Playgroud)

因为如果列改变其位置,它将破坏代码.

lc.*_*lc. 10

当然.这当然不是直接DataGridViewCellEventArgs,但它是很容易获得.在事件处理程序中:

DataGridView dgv = (DataGridView)sender;
string columnName = dgv.Columns[e.ColumnIndex].Name;
Run Code Online (Sandbox Code Playgroud)


Cro*_*der 5

if (e.ColumnIndex == dgv.Columns["CustomerName"].Index )
{
    and so on....            
}
Run Code Online (Sandbox Code Playgroud)