Caldo di commit delle modifiche per un controllo TreeView durante la modifica di un nodo (C#)?

StackOverflow https://stackoverflow.com/questions/72556

  •  09-06-2019
  •  | 
  •  

Domanda

Io sto giocando con Microsoft controllo TreeView e sto cercando di forzare un aggiornamento dei dati di alcune specie durante la modifica di un nodo di etichetta, simile a UpdateData per una griglia.

In sostanza, nel mio editor, ho un pulsante Salva e questo controllo TreeView:quello che voglio è quando mi modifica di un nodo di etichetta nella TreeView, se clicco sul pulsante Salva voglio essere in grado di dedicare il nodo di etichetta stavo modificando.

È stato utile?

Soluzione

L'etichetta del nodo di modifica viene eseguita con una casella di testo e, quando la casella di testo perde la messa a fuoco il cambiamento in nome sarà impegnata, come la nuova etichetta per il nodo.Quindi, se il pulsante 'Salva' si fa clic su elimina il fuoco causerà automaticamente l'aggiornamento perché la casella di testo si perde la concentrazione.

Se il pulsante 'Salva' non prendere fuoco quindi necessario gestire un evento click per il pulsante "Salva" e chiedere l'albero alla fine di ogni attuale etichetta di editing.Se non dispone di un metodo/proprietà si può chiamare per chiedere di modificare le etichette finire, così si hanno due scelte.Se la visualizzazione ad albero, ha la messa a fuoco per poi mettere a fuoco da qualche altra parte.In alternativa, spegnere/riaccendere l'etichetta di editing...

treeView.LabelEdit = false;
treeView.LabelEdit = true;

Altri suggerimenti

Io accettare la risposta, anche se non è molto documentato:fa o non si dispone di un tale metodo?Si effettivamente non hanno una risposta, appena superato la domanda di nuovo a me.

Nel frattempo ha trovato la stessa hack-ish soluzione costringendo la messa a fuoco per un altro controllo (non molto elegante, ma funziona), anche se è un po ' più difficile per me dato che io uso un TreeView come parte di un controllo utente.

Non si ha realmente bisogno di un pulsante salva?

si potrebbe ascoltare per la fine del nodo di modifica - per esempio, ascoltando il tasto "invio" nell'evento KeyDown del TreeView.se hai modificato qualcosa (scopri con SelectedNode.IsEditing), allora sai di avere un commit.Si può quindi applicare questo al vostro dataupdate roba.Se si vuole essere in grado di modificare i diversi nodi e salvare tutti alla fine, quindi è necessario aggiungere ogni cura nodo di una raccolta di qualche tipo, e poi quando si clicca il pulsante salva scorrere di questa collezione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top