LIDOR SYSTEMS

Advanced User Interface Controls and Components

Programmatically editing of tree node in TreeListView .NET control

October 01, 2008

In order to start edit process for node text during runtime, you need to follow these steps:

  • Set the LabelEdit property to True
  • Call the BeginEdit method for the node which you want to edit
  • (Optional) Handle the BeginLabelEdit to perform tasks before the user edits the node text
  • (Optional) Handle the AfterLabelEdit when the user finishes modifying the node text
  • (Optional) Call the EndEdit method to finish the edit process.

In the following example a message appear whenever user tries to insert some invalid characters in the newly edited label. The edit process is canceled and restarted.

private void treeListView1_AfterLabelEdit(object sender, LidorSystems.IntegralUI.ObjectEditEventArgs e)

{

if (e.Object is LidorSystems.IntegralUI.Lists.TreeListViewNode)

{

LidorSystems.IntegralUI.Lists.TreeListViewNode node = (LidorSystems.IntegralUI.Lists.TreeListViewNode)e.Object;

 

if (e.Label != null)

{

if (e.Label.Length > 0)

{

if (e.Label.IndexOfAny(new char[] { '@', '.', ',', '!' }) >= 0)

{

// Cancel the label edit action, inform the user, and place the node in edit mode again

e.Cancel = true;

 

MessageBox.Show("Invalid tree node label.\nThe invalid characters are: '@','.', ',', '!'", "Node Label Edit");

 

node.BeginEdit();

}

}

else

{

// Cancel the label edit action, inform the user, and place the node in edit mode again

e.Cancel = true;

 

MessageBox.Show("Invalid tree node label.\nThe label cannot be blank", "Node Label Edit");

 

node.BeginEdit();

}

}

}

}

Private Sub treeListView1_AfterLabelEdit(sender As Object, e As LidorSystems.IntegralUI.ObjectEditEventArgs)

If TypeOf e.[Object] Is LidorSystems.IntegralUI.Lists.TreeListViewNode Then

Dim node As LidorSystems.IntegralUI.Lists.TreeListViewNode = DirectCast(e.[Object], LidorSystems.IntegralUI.Lists.TreeListViewNode)

 

If e.Label IsNot Nothing Then

If e.Label.Length > 0 Then

If e.Label.IndexOfAny(New Char() {"@"c, "."c, ","c, "!"c}) >= 0 Then

' Cancel the label edit action, inform the user, and place the node in edit mode again

e.Cancel = True

 

MessageBox.Show("Invalid tree node label." & vbLf & "The invalid characters are: '@','.', ',', '!'", "Node Label Edit")

 

node.BeginEdit()

End If

Else

' Cancel the label edit action, inform the user, and place the node in edit mode again

e.Cancel = True

 

MessageBox.Show("Invalid tree node label." & vbLf & "The label cannot be blank", "Node Label Edit")

 

node.BeginEdit()

End If

End If

End If

End Sub

Did you Like this Article?


Enter your e-mail address below and you will receive latest articles as well as news on upcoming events and special offers.