j'initialiser le composant dans le code de concepteur:Marque TreeNode ne peut être sélectionné, mais toujours fonctionnel
private void InitializeComponent(){
this.treeViewCategory.Name = "treeViewCategory";
this.treeViewCategory.Size = new System.Drawing.Size(287, 303);
this.treeViewCategory.TabIndex = 14;
this.treeViewCategory.DoubleClick += new System.Windows.Forms.TreeNodeMouseClickEventHandler(this.treeViewCategory_TreeNodeMouseClickEventHandler);
}
En dehors du designer, je le modifie:
this.treeViewCategory.Update();
TreeNode node = this.treeViewCategory.Nodes.Add("Node 1");
node.Name = "Node 1";
node.Nodes.Add("Node 1-Child");
node = this.treeViewCategory.Nodes.Add("Node 2");
node.Name = "Node 2";
node.Nodes.Add("Node 2-Child 1");
node.Nodes.Add("Node 2-Child 2");
this.treeViewCategory.ExpandAll();
this.treeViewCategory.EndUpdate();
Je veux nœud 1 et nœud 2 être fonctionnel mais non sélectionnable. Donc cliquer sur le nœud 1 ou le nœud 2 augmenterait/contracterait la branche, mais le nœud lui-même ne serait pas mis en surbrillance.
private void treeViewCategory_TreeNodeMouseClickEventHandler(object sender, TreeNodeMouseClickEventArgs eventArgs)
{
TreeView treeView = (TreeView)sender;
TreeNode treeNode = eventArgs.Node; // parent or child
String nodeText = treeNode.Text;
// if parent node
if (nodeText.Contains("Node 1") || nodeText.Contains("Node 2")) {
// don't select the node
}
else { // child
}
}
En treeViewCategory_TreeNodeMouseClickEventHandler
, je peux distinguer entre le parent et l'enfant, mais je ne vois rien qui fait ce que je veux faire.
Ne pas modifier le code de concepteur! – TaW
Ne pouvez-vous pas simplement sélectionner le noeud enfant dans l'événement? Et que comptez-vous faire pour choisir le noeud avec le clavier? – stuartd
@TaW: Où voyez-vous le code du concepteur en train d'être modifié dans mon exemple? –