C# 在尝试显示datagridview c的行号时,我应该连接到的最有效的事件是什么#
我正在C# 在尝试显示datagridview c的行号时,我应该连接到的最有效的事件是什么#,c#,datagridview,C#,Datagridview,我正在virtualMode中使用dataGridView,我尝试使用CellPaint事件来显示行号,但更新headerCell.Value的事实导致CellPaint事件在无限循环中继续触发。我看了RowPostPaint,但这似乎也是一个无限循环。当我在这段代码中时,是否有一个更有效的事件或者一种禁用CellPaint事件触发的方法 void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArg
virtualMode
中使用dataGridView
,我尝试使用CellPaint事件来显示行号,但更新headerCell.Value
的事实导致CellPaint事件在无限循环中继续触发。我看了RowPostPaint,但这似乎也是一个无限循环。当我在这段代码中时,是否有一个更有效的事件或者一种禁用CellPaint事件触发的方法
void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
{
if (e.ColumnIndex == -1 && e.RowIndex > -1)
{
dataGridView1.Rows[e.RowIndex].HeaderCell.Value = (e.RowIndex + 1).ToString();
}
}
只需向类中添加一个字段,并检查您以前是否参与过类似的代码部分
void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
{
if(this.theRowCountWasPainted) return;
if (e.ColumnIndex == -1 && e.RowIndex > -1)
{
dataGridView1.Rows[e.RowIndex].HeaderCell.Value = (e.RowIndex + 1).ToString();
this.theRowCountWasPainted = true;
}
}
每当您需要重新绘制时,只需将this.therowcountwaspained设置为false请告诉我们您的版本是否为VS,如果您的版本为Winforms或Asp.net或WPF或其他任何版本,请告诉我们,这将对VS2010和Winform应用程序有所帮助