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…