代码之家  ›  专栏  ›  技术社区  ›  Niko Gamulin

用图像替换DataGridView单词和数字

  •  0
  • Niko Gamulin  · 技术社区  · 16 年前

    我正在创建一个在DataGridView中显示一些消息及其方向的应用程序。我想用图片替换一些列内容。例如,我想用一个绿色箭头(一些.jpg图像)替换代表传入呼叫的数字0。

    有人知道如何做到这一点吗?

    谢谢!

    3 回复  |  直到 15 年前
        1
  •  1
  •   JJO    15 年前

    我们将资源文件中的图像存储为BMP文件。然后,我们在DataGridView中处理CellFormatting事件,如下所示:

        private void messageInfoDataGridView_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
        {
            // Is this the correct column? (It's actually a DataGridViewImageColumn)
            if (messageInfoDataGridView.Columns[e.ColumnIndex] == messageSeverityDataGridViewTextBoxColumn)
            {
                // Get the row we're formatting
                DataGridViewRow row = messageInfoDataGridView.Rows[e.RowIndex];
                // Get the enum from the row.
                MessageSeverity severity = ((MessageInfo)row.DataBoundItem).MessageSeverity;
                Bitmap cellValueImage;
                // Map the enumerated type to an image...
                // SeverityImageMap is a Dictionary<MessageSeverity,Bitmap>.
                if (ReferenceTables.SeverityImageMap.ContainsKey(severity))
                    cellValueImage = ReferenceTables.SeverityImageMap[severity];
                else
                    cellValueImage = Resources.NoAction;
    
                // Set the event args.
                e.Value = cellValueImage;
                e.FormattingApplied = true;
            }
        }
    
        2
  •  0
  •   Gavin Miller    16 年前

    网格视图可以使用图像字段,而不是数据绑定字段。这听起来像是在耍花招。

        3
  •  0
  •   Quibblesome    16 年前

    查看创建自定义DataGridViewCell DataGridViewColumn和/或DataGridViewEditingControl。