C# 当用户单击文本时,如何防止复选框状态切换?

C# 当用户单击文本时,如何防止复选框状态切换?,c#,winforms,text,checkbox,C#,Winforms,Text,Checkbox,我有一个带有复选框的列表框。如果用户单击复选框旁边的文本,我希望阻止该复选框更改其状态。我只希望它改变,如果小框是直接点击 有没有办法在windows窗体中执行此操作 提前问候和感谢。您不能总是填写复选框的文本属性并创建一个完全独立的标签控件。 否则,您可能必须在控件内进行显式命中测试,以查看它们是否命中框或文本。然后,您将不得不担心检查边距、框在哪一侧以及其他可能改变框位置的事情。将框旁边的文本放置在标签中,而不是复选框的文本属性。或者您可以创建自己的控件,该控件具有复选框和标签。然后,控件的

我有一个带有复选框的列表框。如果用户单击复选框旁边的文本,我希望阻止该复选框更改其状态。我只希望它改变,如果小框是直接点击

有没有办法在windows窗体中执行此操作


提前问候和感谢。

您不能总是填写复选框的文本属性并创建一个完全独立的标签控件。
否则,您可能必须在控件内进行显式命中测试,以查看它们是否命中框或文本。然后,您将不得不担心检查边距、框在哪一侧以及其他可能改变框位置的事情。

将框旁边的文本放置在标签中,而不是复选框的文本属性。或者您可以创建自己的控件,该控件具有复选框和标签。然后,控件的Text属性将填充标签中的文本,您可以公开控件中的所有复选框常规属性。

这是相当非标准的行为。用户希望在点击其标签时能够更改复选框,当它不起作用时,用户会感到沮丧、困惑和惊讶。我建议不要这样做


是的,这是关于网页设计的,但许多概念也适用于桌面应用程序设计。

我个人只能冻结东西。 我通过处理Click和ItemChecked事件来冻结复选框, 当检查状态被修改时,将其更改回原来的状态。 我使用菜单来选中/取消选中项目,并让用户决定使用菜单或经典行为


干杯,祝你好运。

好的,谢谢你,似乎没有办法创建我自己的控件。然而,我认为这一点很重要,不要让你的用户感到惊讶,而是保证把它放在一个答案中。你是专门谈论CheckedListBox的吗?因为到目前为止所有的答案都是关于复选框控制的。谢谢你的评论。不,我不是说CheckedListBox,我有一个标准的ListBox,里面有复选框和其他控件,所以我们必须选择ListBox而不是CheckedListBox