【发布时间】:2015-06-15 07:03:28
【问题描述】:
Visual Studio WinForms 设计器让您可以相当好地将文本框、列表框、按钮等组合在一起。但是,带有 CheckAlign=MiddleRight 的复选框与其他复选框的工作方式不同,因为它有两个组件:内置标签和复选框本身。如果您将文本与其他标签对齐,该复选框将处于浮动状态并且不会自动对齐。您可以关闭 AutoSize 并尝试调整 CheckBox 控件的大小以使复选框对齐,但这很棘手,并且会被自定义字体大小丢弃。
在本例中,我几乎将复选框与其他控件对齐,但并不完全一致:
如果我有多个复选框,那将是一个真正令人头疼的问题,因为 AutoSize 关闭后,复选框的位置是相对于文本末尾的,因此每个控件必须逐个像素地单独调整大小。
将复选框与其他控件对齐的最佳方式是什么?
一种解决方法是在 CheckBox 中不包含文本,而是使用单独的 Label 控件。但是,这样做您将无法单击标签来切换复选框。在高分辨率屏幕上,点击 10x10 像素是很挑剔的,糟糕的 UX 体验。当然,您可以在标签中添加OnClick 事件,但这似乎解决了错误的问题。
这是其他人遇到相同问题的示例:在 Oracle SQL Developer 的首选项面板中,当存在混合属性时,复选框将使用单独的标签和框进行处理:
【问题讨论】:
-
我试图在我所有已安装的软件中找到一种情况,其中该框位于文本的右侧,但找不到。我建议像其他人那样做。
-
不太可能存在
LayoutEngine提供该级别的粒度来独立设置投票箱坐标和文本的规则。大多数LayoutEngines在Control级别上运行,并且不提供特定类型控件的选项。您总是可以自己编写,但这比简单地使用Label/CheckBox对要多得多。
标签: winforms visual-studio checkbox