or
Imports Telerik.WinControls Public Class Form1 Private Sub TextBox1_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles TextBox1.Validating RadMessageBox.Show("Testing", Me.Text, MessageBoxButtons.OK, RadMessageIcon.Info) End SubEnd ClassI want to prevent some nodes to check by some condition (let's say that is node.Enabled in this case - actually it can be more complicated).
Also I want to use TriStateMode to simplify process of control node's check state and (mainly) make visible to user that some lower nodes in tree are not checked.
In this example, nodes "Not checkable" could not be checked. And, if I check root node "Main node" - this example works fine. But when I change "block 1" and "block 2" and try to check root node - it don't. Event fired for node "Not Checkable node", invert it, return to root node and uncheck it.
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
RadTreeView1.TriStateMode = True
RadTreeView1.AutoCheckChildNodes = True
RadTreeView1.Nodes.Clear()
Dim mainNode As Telerik.WinControls.UI.RadTreeNode
Dim newNode As Telerik.WinControls.UI.RadTreeNode
Dim newSubNode As Telerik.WinControls.UI.RadTreeNode
mainNode = New Telerik.WinControls.UI.RadTreeNode("Main node")
mainNode.Enabled = True
RadTreeView1.Nodes.Add(mainNode)
' block 1 - start
newNode = New Telerik.WinControls.UI.RadTreeNode("Checkable node")
newNode.Enabled = True
mainNode.Nodes.Add(newNode)
newSubNode = New Telerik.WinControls.UI.RadTreeNode("Checkable node 1")
newSubNode.Enabled = True
newNode.Nodes.Add(newSubNode)
' block 1 - end
' block 2 - start
newNode = New Telerik.WinControls.UI.RadTreeNode("Not Checkable node")
newNode.Enabled = False
mainNode.Nodes.Add(newNode)
newSubNode = New Telerik.WinControls.UI.RadTreeNode("Not Checkable node 1")
newSubNode.Enabled = False
newNode.Nodes.Add(newSubNode)
' block 2 - end
RadTreeView1.ExpandAll()
End Sub
Private Sub RadTreeView1_NodeCheckedChanged(ByVal sender As Object, ByVal e As Telerik.WinControls.UI.RadTreeViewEventArgs) Handles RadTreeView1.NodeCheckedChanged
If e.Node.Checked AndAlso Not e.Node.Enabled Then
e.Node.Checked = False
End If
End Sub
I am using Telerik version=2010.1.10.308
Another question: How can I maintain view of checkbox in TriStateMode? I mean that "grey sign" instead of "black sign" is not so obvious for user - I would prefer to change color or something like that. May be there is another method to control/theming checkbox? If it's possible, I would not use TriState and maintain checkboxes state (and checkbox representation) manually in code.
