如何在datagridview winform中更改复选框大小

时间:2012-04-12 04:43:41

标签: c# .net winforms datagridview checkbox

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

1 个答案:

答案 0 :(得分:2)

我认为你想要改变绘制的正方形的大小,将单元格放入复选框。 如果是这种情况我怀疑可能没有一个非常简单的解决方案,但你可以通过自定义绘画图像而不是“已选中”,“未选中”框来实现结果。这是一个如何解决这个问题的提示.. 在包含datagridview的表单上的图像列表中添加两个图像(您想要的大小,因为它对您来说很重要)。 (这两个图像当然对应于Checked / Unchecked复选框visual) 处理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事件上设置基础数据源的值(如果您希望在用户单击单元格时检查该复选框,如果它只读,则可能不需要这样做)

注意:我不确定我们是否能获得比这更优雅的解决方案,请稍等,看看是否有人有更明智的想法。