Supongamos lo siguiente: tengo un formulario con, entre otros, los siguientes controles:
-
Un ListBox que se usa como control de navegación. En este caso, muestra los nombres de todos los clientes. Está enlazado mediante un BindingSource a la DataTable de clientes.
-
Un TextBox que muestra la fecha de adquisición de «algo» por el cliente.
-
Un DateTimePicker que permite seleccionar la fecha de adquisición de «algo» por el cliente.
El DateTimePicker no se muestra cuando estamos en modo «Ver datos», sólo al crear o modificar un «algo» comprado por el cliente. Para ello tenemos un método que se encarga de que en modo «Ver datos» se vea el ListBox y el TextBox y en modo «Altas y modificaciones de algos» se vea el DateTimePicker y no el ListBox ni el TextBox.
Hasta aquí sencillo, ¿no?
Bien, pues si al pasar a modo «Ver datos» el orden es el siguiente:
MiListBox.Visible = True
MiDateTimePicker.Visible = False
MiTextBox.Visible = True
Si el DateTimePicker tiene el foco se selecciona el último cliente que hay en el ListBox. Sin embargo, si el orden es:
MiListBox.Visible = True
MiTextBox.Visible = True
MiDateTimePicker.Visible = False
Se queda seleccionado el cliente en el que estaba.
Supongo que sus razones habrá, pero a mí me lleva dando la tarde. Y no ha sido mucho tiempo porque la gestión de las Visitas también tiene su DateTimePicker y su TextBox, pero por casualidad en el orden correcto y sólo he tenido que comparar línea a línea qué se hacía en Visitas y no en «algos», que si no…