Winforms 在绘制复选框时,如何确定适当的大小?
我正在帮助某人将一大堆面板和700个精心放置的复选框转换成稍微理智一点的东西。我的计划是实现一个自定义控件,它使用ControlPaint类手动绘制复选框;这将使处理数据变得更容易,从表单中删除700个GDI句柄可能是一件好事* DrawCheckbox()接受图形、复选框的边界和按钮状态。边界似乎很有趣;我认为这种行为可能是:Winforms 在绘制复选框时,如何确定适当的大小?,winforms,checkbox,size,Winforms,Checkbox,Size,我正在帮助某人将一大堆面板和700个精心放置的复选框转换成稍微理智一点的东西。我的计划是实现一个自定义控件,它使用ControlPaint类手动绘制复选框;这将使处理数据变得更容易,从表单中删除700个GDI句柄可能是一件好事* DrawCheckbox()接受图形、复选框的边界和按钮状态。边界似乎很有趣;我认为这种行为可能是: 如果我提供了太多的空间,我会在这些边界的中心画一个复选框 我得到一个与我指定的边界一样大的复选框 所以我用一个100x100的矩形作为边界进行了测试,发现结果是一个
- 如果我提供了太多的空间,我会在这些边界的中心画一个复选框
- 我得到一个与我指定的边界一样大的复选框
*我知道,即使你找到了一种使用负记忆的方法,在屏幕上显示700种东西也是个坏主意。这个项目的第二步是建议一个更理智的设计。DataGridView已经被认为是看起来不正确的东西。我试图一步一个脚印地去做,我也很好奇是否有办法确定系统的复选框大小。有一种简单易行的方法来获取大小 1,将实际的复选框实例添加到表单中。 2、将其放置在看不见的位置。位置=(-1000,-1000) 3、将复选框文本设置为要测量的任何内容。 4、使用checkBox1.GetPreferredSize(Size.Empty) 然后给出首选大小,即使用当前文本设置绘制控件所需的实际大小