在c#中如何在datagridview

时间:2015-09-16 09:18:34

标签: c# image datagridview

我的表单中有dataGridView,每列都是DataGridViewImageColumn在每个单元格中都有一个JPG,我从这样的资源加载:

Image H1 = Properties.Ressources.H1_T;
dgMap[6, 0].Value = H1;

所以每个单元格都包含一个图像,我的问题是如何将文本放在上面?我只是想在右上角放一个✔标记。

我还有另一个问题,是否仍然可以突出显示包含图像的选定单元格?

编辑:

我找到了一种方法,只是用复选标记覆盖另一张图片......

Image primaryImage = (Image)dgMap[e.ColumnIndex, e.RowIndex].Value;
        using (Graphics graphics = Graphics.FromImage(primaryImage))
        {
            using (Image overlayDone = Properties.Resources.done) 
            {
                graphics.DrawImage(overlayDone, new Point(0, 0));
            }
        }

        dgMap[e.ColumnIndex, e.RowIndex].Value = primaryImage;

所以我的问题是如何突出显示所选单元格?由于它是图像,因此用户无法看到选择

1 个答案:

答案 0 :(得分:0)

虽然可能有多种解决方案可以做到这一点,而不是使用普通的图像控制,我使用的按钮具有从标准WPF按钮派生的自定义行为。通过这种方式,我可以在其上显示文本,并轻松单击它并突出显示所选图像。

编辑: 您可以使用DropShadowEffect调整高光效果。 将此行为添加到用户单击:

            DropShadowEffect SelectedEffect = new DropShadowEffect
        {
            Color = new Color { A = 0, R = 255, G = 0, B = 0 },
            Direction = 320,
            ShadowDepth = 1,
            Opacity = 1,
            RenderingBias = RenderingBias.Quality
        };