Category / Section
How to make AfterCheck event to trigger when a node's text is clicked in WinForms TreeViewAdv?
1 min read
Handle MouseDown event
It is possible to get the AfterCheck event triggered when a node's text is clicked instead of the checkbox by handling MouseDown event along with the PointToClient and PointToNode method.
C#
private void treeViewAdv1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e) { if(e.Button == MouseButtons.Left) { // Get the point where the mouse was left clicked Point p = this.treeViewAdv1.PointToClient(Control.MousePosition); // Get the node at the left click point TreeNodeAdv node = this.treeViewAdv1.PointToNode(p); if(node != null) { // See if the label was clicked on if(node.TextAndImageBounds.Contains(p)) { node.Checked =!node.Checked; } } } }
VB
Private Sub treeViewAdv1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) If e.Button = MouseButtons.Left Then ' Get the point where the mouse was left clicked Dim p As Point = Me.treeViewAdv1.PointToClient(Control.MousePosition) ' Get the node at the left click point Dim node As TreeNodeAdv = Me.treeViewAdv1.PointToNode(p) If Not node Is Nothing Then ' See if the label was clicked on If node.TextAndImageBounds.Contains(p) Then node.Checked =Not node.Checked End If End If End If End Sub