有没有办法让 DataGridViewCheckBox 单元格变小?
如这个问题中所述,如果,DataGridView(WinForm而不是WPF)中的行的最小行高为17您希望在 DataGridViewCheckBoxCell 中显示复选框。 如果更小,复选框就会消失!
有没有办法在 DataGridView 单元格中放置较小的复选框?
As described in this question it appears the minimum row height for a row in a DataGridView (WinForm not WPF) is 17 if you wish to display check boxes in a DataGridViewCheckBoxCell. Any smaller and the check box simply disappears!
Is there a way to place a smaller checkbox in a DataGridView cell?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
事实上,您必须自己绘制控件。 从好的方面来说......自己绘制控件实际上并不那么难。 这是绘制自己的复选框的一个不错的示例(我们正在使用一些东西而不是与我们自己的代码类似)。
只是,您不想覆盖它以使其看起来已禁用,而是想覆盖它以使框变小...我看不到任何使用大小调用 CheckBoxRenderer.DrawCheckBox 的方法,但不应该有任何东西阻止您绘制到你自己的图形对象中,自己缩小它,然后绘制你刚刚缩小的图像。
Indeed, you will have to draw the control yourself. On the plus side... drawing the control yourself isn't actually that hard. This is a decent example of drawing your own checkbox (we're using something rather similar in our own code).
Just, instead of overriding it to look disabled, you want to override it to make the box smaller... I don't see any way of calling CheckBoxRenderer.DrawCheckBox with a size, but there shouldn't be anything stopping you from drawing into your own graphics object, shrinking it yourself, then drawing the image you just shrunk.
如果您现在使用 .NET 4.0,则可以使用 DataGridView.RowTemplate 调整最小高度。
例如,
但是,正如 此 MSDN 答案 带有复选框的行的最小高度为 17 像素。 似乎没有任何方法可以解决这个问题。
If you are now using .NET 4.0, you can use the DataGridView.RowTemplate to adjust the minimum height.
For example,
However, as evidenced by this MSDN answer the minimum height for a row with check boxes is 17 pixels. It does not appear there is any way around this problem.