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; 

     //} 
    } 

需要在这里的一些代码或链接,你可以看到图像是如何在运行时确定帮助。

非常感谢

我找到了一个可能对您有帮助的链接。

http://www.informit.com/articles/article.aspx?p=446453&seqNum=14

H个。

+0

感谢帮助 – user9969