我想动态地将不同的图像添加到c#windows form datagridview行标题中。它应该像检查任何单元格值一样,如果它> 10显示一些图像,否则显示其他图像。如何做到这一点?请帮帮我...........
答案 0 :(得分:3)
将一个OnRowDataBound事件处理程序添加到GridView
在事件处理程序中 - 检查标题并相应地处理每一列
protected virtual void OnRowDataBound(GridViewRowEventArgs e) {
if (e.Row.RowType == DataControlRowType.Header) {
// process your header here..
}
}
有关详细信息,请转到此处:http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridviewroweventargs.row.aspx
答案 1 :(得分:2)
您可以在DataGridView.RowPostPaint事件中将图像添加到DataGridView行标题。
这是一篇关于CodeProject的文章的链接,似乎很好地描述了这一点(我没有尝试自己编写代码):Row Header Cell Images in DataGridView
您可以使用RowPostPaint事件提取要测试的值,以确定要显示的图标。通过使用事件的RowIndex属性以及您感兴趣的列的索引值来执行此操作。
这样的事情应该作为一个起点:
private void dataGridView1_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e) {
// As an example we'll check contents of column index 1 in our DGV.
string numberString = dataGridView1.Rows[e.RowIndex].Cells[1].Value as string;
if (numberString != null) {
int number;
if (Int32.TryParse(numberString, out number)) {
if (number > 10) {
// Display one icon.
} else {
// Display the other icon.
}
} else {
// Do something because the string that is in the cell cannot be converted to an int.
}
} else {
// Do something because the cell Value cannot be converted to a string.
}
}
答案 2 :(得分:0)
我不确定如何添加图片......但是this link有一个很好的例子,可以在行标题中写入数字,因此您可以使用> 10条件更新它,以显示图像。