0

如何更改 DataGridViewCheckBoxCell 中复选框的大小 [不是单元格的大小] 我正在使用 .net 3.5

4

1 回答 1

3

我认为您想更改在复选框的单元格中绘制的正方形的大小。如果是这种情况,我怀疑可能没有一个非常简单的解决方案,但您可以通过自定义绘画图像而不是“选中”、“未选中”框来获得结果。这里有一个提示如何解决这个问题。在包含您的数据网格视图的表单上的图像列表中添加两个图像(您想要的大小,因为它的大小对您很重要)。(这两个图像当然对应于 Checked/Unchecked 复选框视觉)处理 DataGridView 的“CellPainting”事件并编写如下内容:

if (e.ColumnIndex == 0 && e.RowIndex >= 0)//Assuming the checkbox is in Column 0
        {
            e.PaintBackground(e.ClipBounds, false);
            int index = 0;//Unchecked image
            if (e.Value != null && (bool)e.Value == true)
                index = 1;//Checked image
                e.Graphics.DrawImageUnscaled(imageList1.Images[index], e.CellBounds.X + 5, e.CellBounds.Y + 5);

            e.Handled = true;
        }

现在,为了在单元格中获得选中/未选中的图像,您需要做的就是在 CellClick 事件上设置底层数据源的值(如果您希望当用户单击单元格时复选框被选中,如果它读取只有这样才可能不需要)

注意:我不确定我们是否可以得到比这更优雅的解决方案,请稍候看看是否有人有更聪明的想法。

于 2012-04-12T05:28:19.003 回答