It is not possible to cancel it. However, a possible workaround you can use is to to verify it the condition is met in the event handler , and if so, set the selected item back to what it was before the event was triggered.
e.g.:
private Xceed.SmartUI.Controls.TreeView.Node previousNode;
private void Form1_Load(object sender, EventArgs e)
{
previousNode = ( Xceed.SmartUI.Controls.TreeView.Node )smartTreeView1.SelectedItem;
smartTreeView1.SelectedItemChanged += new EventHandler( smartTreeView1_SelectedItemChanged );
}
void smartTreeView1_SelectedItemChanged( object sender, EventArgs e )
{
if( someCondition )
{
smartTreeView1.SelectedItem = previousNode;
}
else
{
previousNode = ( Xceed.SmartUI.Controls.TreeView.
Node )smartTreeView1.SelectedItem;
}
}
If your condition is fast to verify, it should not lag, the user should not see that the item was changed and reverted.
Imported from legacy forums. Posted by André (had 379 views)