2008-11-14 8 views
5

Esto es un poco extraño, pero he estado luchando durante unas horas y no puedo entender lo que está sucediendo.No se puede eliminar la pestaña de la lista desplegable de Winforms

Me preguntaba si alguien más ha experimentado este problema, y ​​quizás pueda explicarlo. Estoy construyendo una aplicación Winforms simple e intentando usar muchos de los controles integrados.

Básicamente, tengo un formulario con un control de usuario y algunos campos de captura de datos. 3 de los campos son listas desplegables y en el control del usuario tengo un control bindingSource que se une directamente a una clase de Producto.

En tiempo de ejecución proporciono una instancia de la clase de Producto a BindingSource y la clase contiene una propiedad de ProductType. Para simplificar también agregué un List<ProductType> ProductTypes a la clase de producto que se carga solo cuando se lo consulta, lo que significa que puedo usar el mismo bindingSource y elegir el ProductTypes Data Member como el Datasource para la lista desplegable.

Al ejecutar el formulario, la lista se vincula perfectamente y puedo ver todos los tipos de productos enumerados, y puedo seleccionar uno y tabular o hacer clic en el siguiente campo. Pero obviamente el valor seleccionado no se vinculará porque no he elegido ningún enlace-SelectedValue para el menú desplegable, solo un origen de datos. Tan pronto como me asegure de que el menú desplegable modifique la instancia del Producto al enlazar a Bindings-SelectedValue, y luego ejecutar el formulario, la lista aún se llena perfectamente y puedo desplazarme por los controles siempre que no lo haga. hacer una selección del menú desplegable. Si selecciono desde el menú desplegable, el menú desplegable tiene el foco. No puedo eliminar el amor o el dinero y ni siquiera puedo hacer clic en el botón Cancelar en el formulario, el botón Cerrar en la parte superior derecha es el único botón en el que puedo hacer clic y no puedo hacer clic en ningún otro campo o menú desplegable. Esto afecta a las tres listas desplegables tan pronto como se realiza una selección.

¿Alguien tiene alguna idea de lo que me estoy perdiendo?

He intentado cambiar algunas cosas y tuve cierto éxito al alimentar los valores desplegables de una cadena [] en lugar de un miembro de un objeto. Eso parece funcionar, pero frustra el objetivo del uso de enlace de datos, ¿no es así?

Cualquier ayuda apreciada!

Respuesta

8

Solo estoy adivinando aquí, porque no tengo tiempo para configurar una prueba y confirmarla ahora, pero ¿está haciendo alguna validación? Me parece recordar que los controles de datos no te permitirán irte si el contenido no valida. Incluso si no lo eres explícitamente, intenta configurar CausesValidation en False para ver si hay algún tipo de validación detrás de las escenas, que al menos podría darte una pista.

+0

Muchas gracias Tom - no puedo creer que fuera así de simple! Va a mostrar lo que sucede cuando no incluye la verificación de validación porque es una aplicación de prueba ;-) – RobertTheGrey

+0

¿Podemos detectar ese error de validación? ¿Qué sería eso? – Lamar

0

Para desplegables de Infragisticst (puede no ser cierto para otros menús desplegables winform): Si tiene "LimitToList" establecido en true, puede estar atascado en un menú desplegable del que no puede salir sin darse cuenta. Use el ItemNotInList incluso para activar un mensaje de advertencia.

1

Gracias por su contribución, me ayudó a entender esto.

En mi caso, resulta que se lanzó una excepción en uno de los EventHadlers para mi evento ComboBox.Validating. Fue difícil localizarlo, porque el IDE no me mostró esa excepción. Pude modificar el comportamiento de excepción (en el menú de depuración) y hacer que me muestre cualquier InvalidOperationException que se estaba lanzando, y luego pude rastrearlo.

Como sugirió Tom, apagar CuasesValidation fue el ticket para descubrirlo.

Cuestiones relacionadas