WinForms Datagridview在运行时更改图像行vs 2010
问题描述:
以前从未使用过datagridview,我无法弄清楚如何根据状态更改myImageColumn。WinForms Datagridview在运行时更改图像行vs 2010
我在这个网格中加载一些日志,并根据状态我想分配appriopriate image.Not不知道我应该做这件事。 任何建议或示例绑定或解除绑定会很好。
下面是一些代码
public enum LogType
{
Fatal,
Error,
Warn,
Info,
Debug,
None,
}
public class Log
{
public LogType LogType { get; internal set; }
public string Message { get; set; }
}
private void LoadDataGrid()
{
// Create the image column.
DataGridViewImageColumn imageCol = new DataGridViewImageColumn();
imageCol.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
imageCol.ImageLayout = DataGridViewImageCellLayout.Normal;
imageCol.Frozen = true;
imageCol.Name = "Image";
imageCol.HeaderText = "";
imageCol.DisplayIndex = 0;
imageCol.Image = Properties.Resources.warning;
datagrid.Columns.Add(imageCol);
DataGridViewTextBoxColumn colMessage = new DataGridViewTextBoxColumn();
colMessage.Name = "Message";
colMessage.HeaderText = "Message";
datagrid.Columns.Add(colMessage);
datagrid.DataSource= GetAllLogs();
}
private void OnCellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
//I am not sure about the all thing here
// Check if it's the Image column.
if ((dgvLogs.Columns[e.ColumnIndex].Name == "Image"))
{
object value = dgvLogs.Rows[e.RowIndex].Cells["LogType"].Value;
//TODO:Convert to enum
// switch (type)
//{
// case "fatal": e.Value=FatalImage;
// case "error": e.Value=ErrorImage;
//case "warn": e.Value=WarnImage;
//case "info": e.Value=InfoImage;
//case "debug": e.Value=DebugImage;
//}
}
需要在这里的一些代码或链接,你可以看到图像是如何在运行时确定帮助。
非常感谢
感谢帮助 – user9969