我已经创建了一个DataGridView并添加了一个DataGridViewImageColumn (使用设计器)。
DataGridView的值为"AllowUserToAddRows = true“,因此会显示一个空白行,供用户输入新行。在这个空白行中,DataGridViewImageColumn显示一个红色的x。我希望始终在列中显示相同的图像,而不管该行是否包含任何数据(我绑定了单元格的click事件,因此使用DataGridViewImageColumn作为按钮)。
我怎么去掉红色的x?
发布于 2009-06-09 14:38:01
我使用ImageList来保存我所有的图片,但这里有一个精简的版本,应该会有所帮助。您设置该值是正确的,但是您应该将其设置为位图的null等效值,这只是一个静态空白图像。我使用:
e.Value = (imageIndex != int.MinValue) ? imageList.Images[imageIndex] : nullImage;其中,nullImage在类的前面定义为:
private readonly Image nullImage = new Bitmap(1, 1);发布于 2010-11-25 02:29:11
我查看了这些解决方案,使其有效的方法是在构造函数中调用InitializeComponent()使数据绑定行的默认图像成为空图像之后执行此操作
dataGridView1.Columns[0].DefaultCellStyle.NullValue = null;并挂钩RowPrePaintEvent以删除网格末尾空行的红色X,因为AllowUserToAddRows = true
private void dataGridView1_RowPrePaint(object sender, DataGridViewRowPrePaintEventArgs e)
{
if (e.RowIndex >= numberOfRows)
{
dataGridView1.Rows[e.RowIndex].Cells[0].Value = null;
}
}其中numberOfRows是网格中的有效行数。我花了几个小时来处理这件事。希望这不会让其他人头疼。
发布于 2011-09-19 20:53:23
我像这样使用了grid.row的IsNewRow属性
private void dgUserFileList_RowPrePaint(object sender, DataGridViewRowPrePaintEventArgs e) {
DataGridViewRow row = dgUserFileList.Rows[e.RowIndex];
if (row.IsNewRow) {
row.Cells[0].Value = null;
}
}
}https://stackoverflow.com/questions/937919
复制相似问题