No es conmutativo, no

Supongamos lo siguiente: tengo un formulario con, entre otros, los siguientes controles:

  1. 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.

  2. Un TextBox que muestra la fecha de adquisición de “algo” por el cliente.

  3. 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…

Deja un comentario