我有一个包含Checkboxes的列表框。如果用户点击旁边的文本,我想阻止Checkbox更改其状态。如果直接点击小方框,我只希望它改变。
有没有办法在Windows窗体中执行此操作?
提前问候和感谢。
答案 0 :(得分:6)
将文本旁边的文本放在Label中,而不是复选框的Text属性。或者您可以创建自己的控件,其中包含一个复选框和一个标签。然后,控件的Text属性将填充Label中的Text,您可以在控件中公开所有Checkboxes常规属性。
答案 1 :(得分:2)
这是相当不标准的行为。用户希望能够在点击其标签时更改复选框,并且当它不起作用时会感到沮丧,困惑和惊讶。我建议不要这样做。 I'm not the only one
(是的,这是关于网页设计,但许多概念也适用于桌面应用程序设计。)
答案 2 :(得分:0)
您始终无法填写复选框的Text属性并创建一个完全独立的Label控件 否则,您可能必须在控件中进行显式命中测试,以查看它们是否击中了框或文本。然后你将不得不担心检查边距,方框的哪一侧,以及其他可以改变方框位置的东西。
答案 3 :(得分:0)
我个人只能冻结东西。 我通过处理Click和ItemChecked事件来冻结复选框, 并在修改后更改检查状态。 我使用菜单来检查/取消选中项目,让用户决定使用菜单或经典行为。
欢呼,祝你好运。