我尝试使用以下两个代码示例,并且都删除了红色 x,但在显示时会导致无限循环。一旦由于某种原因将单元格设置为 RowPrePaint 中的 AddNewIndex .bmp,它就会再次调用 RowPrePaint。然后 e 再次为 0 并继续循环。有谁知道将值设置为 AddNewIndex .bmp 而不会导致 RowPrePaint 再次执行的方法?(或者去除红色 x 的不同方法?)另外,我下次知道,是什么导致 RowPrePaint 被多次调用?
private void tableDocTypes_RowPrePaint(object sender, DataGridViewRowPrePaintEventArgs e)
{
if (e.RowIndex >= tableDocTypes.NewRowIndex)
tableDocTypes.Rows[e.RowIndex].Cells[columnDocTypeImage.Index].Value = Properties.Resources.AddNewIndex;
}
private void tableDocTypes_RowPrePaint(object sender, DataGridViewRowPrePaintEventArgs e)
{
if (tableDocTypes.Rows[e.RowIndex].IsNewRow)
tableDocTypes.Rows[e.RowIndex].Cells[columnDocTypeImage.Index].Value = Properties.Resources.AddNewIndex;
}
还在构造函数中添加以下内容:
InitializeComponent();
tableDocTypes.Columns[columnDocTypeImage.Index].DefaultCellStyle.NullValue = Properties.Resources.AddNewIndex;