Caliente para confirmar los cambios para un TreeView mientras que la edición de un nodo (C#)?

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

  •  09-06-2019
  •  | 
  •  

Pregunta

Yo estoy jugando con Microsoft del control TreeView y estoy tratando de forzar una actualización de datos de algún tipo, mientras que la edición de un nodo de la etiqueta, similar a UpdateData de una cuadrícula.

Básicamente, en mi editor, tengo un botón de Guardar y este control TreeView:lo que yo quiero es que cuando estoy editando un nodo de la etiqueta en la vista de árbol, si hago clic en el botón Guardar, quiero ser capaz de cometer el nodo de la etiqueta estaba editando.

¿Fue útil?

Solución

El nodo de la edición de etiquetas se realiza con un cuadro de texto y cuando ese cuadro de texto pierde el foco del cambio de nombre será confirmado como la nueva etiqueta para el nodo.Así que si el botón 'Guardar' que usted hace clic en la toma de enfoque, a continuación, se hará la actualización de forma automática debido a que el cuadro de texto se pierde el foco.

Si el botón 'Guardar' no lleva el foco entonces la necesidad de manejar un evento click para el botón 'Guardar' y pedir el árbol que poner fin a la actual edición de etiquetas.Si no tiene un método o propiedad que usted puede llamar para solicitar la edición de etiquetas acabado así que tienes dos opciones.Si la vista de árbol tiene el foco, a continuación, poner el foco en algún otro lugar.Alternativamente, a su vez apagado/encendido de nuevo la edición de etiquetas...

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

Otros consejos

Voy a aceptar la respuesta, aunque no sea realmente documentado:¿o no tiene un método?En realidad no contesto a esto, acaba de pasar la pregunta de nuevo a mí.

Mientras tanto, encontraron el mismo hack-ish con la solución de forzar el foco a algún otro control (no muy elegante, pero funciona), aunque es un poco más difícil para mí, ya que yo uso un TreeView como parte de un control de usuario.

¿Usted realmente necesita un botón de guardar?

usted puede escuchar el final de la edición de nodo - por ejemplo, por la escucha de la "vuelta" de la llave en el evento KeyDown de la vista en árbol.si usted está editando algo (encontrar con SelectedNode.IsEditing), entonces usted sabe que usted tiene un commit.Usted puede confirmar esto a su dataupdate cosas.Si usted quiere ser capaz de editar muchos diferentes nodos y salvarlos a todos, al final, entonces usted necesita para agregar cada editado nodo a una colección de algún tipo, y luego, cuando haga clic en el botón guardar iterar a través de esta colección.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top