Pregunta

Tengo una aplicación de escritorio .Net con TreeView como uno de los elementos de la interfaz de usuario.

Quiero poder realizar una selección múltiple de ese TreeView, solo que eso no es compatible en absoluto.

Así que estoy agregando casillas de verificación al árbol. Mi problema es que solo algunos elementos son seleccionables, y aquellos que no lo son no pueden realizar selecciones en cascada de manera consistente.

¿Hay alguna forma de desactivar u ocultar algunas casillas de verificación mientras se muestran otras?

¿Fue útil?

Solución

El comportamiento predeterminado de TreeView es que cuando el Casillas de verificación propiedad se establece en verdadero, se mostrarán casillas de verificación para todos los TreeNodes.

El comportamiento que busca (desactivar u ocultar algunas casillas de verificación) es una modificación personalizada del comportamiento normal.Puede crear una implementación personalizada de TreeView o TreeNode que anule el comportamiento predeterminado.Otra cosa que puedes probar sería utilizar TreeView.Lista de imágenes de estado propiedad.Algunos sitios para visitar para obtener más información:

Otros consejos

Tuve un problema muy similar en un editor que escribí recientemente.Al final utilicé el TreeNode's BackColor propiedad para determinar el estado de selección del nodo.Luego escribí un controlador para el SelectionChanged evento que verificó el estado de las teclas Mayús/Control para determinar si el nodo seleccionado se estaba agregando o eliminando de la selección o creando una nueva selección.También hubo un Generic::List<> de los nodos que fueron seleccionados actualmente para eliminar cualquier búsqueda de árbol.

Vista de árbol de selección múltiple:

¿Por qué .NET no tiene una vista de árbol de selección múltiple?Hay tantos usos para uno y activar las casillas de verificación en la vista de árbol es una alternativa bastante pésima.

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