【发布时间】:2019-03-23 22:11:26
【问题描述】:
我有一个 TreeView 填充有带有图标和复选框的 TreeNodes。
我一直在尝试禁用其中一些在 BerforeCheck 方法中丢弃事件的检查/取消检查功能。这工作正常,直到我双击复选框:复选框的图像与其真实状态相反(如果状态为Checked=false,它会显示一个复选标记)。我尝试在 NodeDoubleClick 和 BeforeClick 方法中手动更改 StateImageIndex ,但没有成功。
更糟糕的是:我在 StateImageList 中添加了第三张图片(是的,我也希望复选框为三态)但我还没有使用它(它从未在我的代码中设置),第三张图片双击后设置为框的当前状态(此时我无法确定明确的行为)。
我怎样才能最好地让它按预期工作,最坏的情况是禁用双击复选框? 谢谢。
PS:问题有already been asked,但没有答案...
【问题讨论】:
-
我对其进行了测试,基本上,当您双击复选框时,只会检测到一次检查更改。究竟是什么问题?可以发一些代码吗?
-
P.S.我目前正在使用 XP,也许这只是一个 vista/seven 问题...
-
问题在于,双击后复选框的图像会更改两次(对于两次单击),而复选框的状态仅更改一次 => 不连贯的行为。除了没有太多代码要显示之外,它基本上是组件的默认行为......顺便说一句,我正在使用 Vista。
-
当我双击一个节点的复选框时,图像(“图像”是指复选框标志)和节点检查状态仅更改一次,因此我无法重现该问题。 ..也许在 XP 上没问题 :(
-
是的,我确认,它在 XP 上运行良好,而在 Win 7 中我和你有同样的问题......
标签: c# treeview checkbox double-click treenode