如何解决如何在不禁用vb.net或c#中的树子节点视图的情况下禁用该复选框?
我想通过在vb.net Windows窗体中禁用该复选框来限制用户不要选中该复选框。 但是,不想禁用子节点视图。 (当用户单击+登录树状视图时,应显示子节点,但应禁用复选框。)
Private Sub Form1_Load(ByVal sender As Object,ByVal e As EventArgs) Handles MyBase.Load
For i As Integer = 1 To 3
Dim node As New TreeNode("Parent #" & i.ToString)
node.Nodes.Add("Child #1")
node.Nodes.Add("Child #2")
TreeView1.Nodes.Add(node)
Next
// code for disabling the checkbox but user still want to expand the child nodes even after disabling the check box. It should just restrict the user in checking the check boxes.
End Sub
解决方法
此后,您没有为用例提供很多详细信息,但是在过去,当我完成此操作并需要一些自定义选择工具时(实际上涉及的状态多于“是/否/不可检查”)。 / p>
-
添加了TreeView
-
关闭复选框
-
在表单中添加了一个ImageList
-
添加了3张图片:一张看上去像刻度的图片,一张看上去像没有刻度的图片,以及一幅空白/表示没有切换的图片
-
将电视的
StateImageList
(不是ImageList)属性设置为ImageList -
将希望显示为选中的任何节点的
StateImageIndex
设置为0 -
将我希望显示为未选中的任何节点设置为
StateImageIndex
为1 -
将希望显示为不可检查的任何节点设置为具有StateImageIndex 2
-
具有这样的代码,它们仅在某些情况下(例如,在NodeMouseDoubleClick中是这样)来切换状态:
If e.Node.StateImageIndex = 0 Then e.Node.StateImageIndex = 1 ElseIf e.Node.StateImageIndex = 1 Then e.Node.StateImageIndex = 0 End If
由于未提及状态2,因此保留状态2的所有内容。您可以检查stateimageindex来了解是否已“检查”节点。
在此动画中,节点2处于状态2。红色环出现并褪色表示鼠标单击(两次单击表示双击):
(我刚刚在此演示中找到了任何旧的随机图像,我无意声称它们代表刻度/通知/不可标记,只是它们是3个不同的随机图标)
电视设置(全部在此演示的表单设计器中完成):
图像列表设置:
如果checkboxes=true
,树视图可以循环状态本身-它在状态0的图像和状态1的图像之间切换节点,但是您无法将状态成功设置为其他任何状态-树将忽略您所做的StateImageIndex的任何设置,并根据节点的Checked状态直接使用图像0/1:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。