none
DateTimePicker muestra fecha aunque no tenga datos el campo sql al que corresponde RRS feed

  • Pregunta

  • Tengo un formulario con campos SQL y varios corresponden a fechas. Concretamente 4 campos DateTimePicker.

    El problema es que el control muestra una fecha aunque no este capturado nada en ese campo. Esto crea un desconcierto a la hora de saber que tiene datos y que no.

    he probado sugerencias como esta:

    - - -VB.NET - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 

    DateTimePicker1.CustomFormat =" "'un espacio vacío
    DateTimePicker1.Format = DateTimePickerFormat.Custom

         En el evento DateTimePicker1_ValueChanged hacer también lo siguiente:

    DateTimePicker1.Format =DateTimePickerFormat.Short

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    Aun así no logro pleno control sobre el proceso, el control falla en ocasiones y sigue mostrando valor en blanco aunque capturo una fecha, o bien no se graba en la base de datos....O veces tengo que cambiar la fecha predeterminada del control para que guarde datos... es frustrante e impredecible

    ¿Hay algún procedimiento seguro para manejar DateTimePicker de tal forma que se muestre en blanco cuando no tenga datos y que efectivamente se llene o muestre cuando ya se capture una fecha? 

    Ademas, se si convierte el formato a BLANK space, ¿como quitar ese formato cuando se vuelven a ver los datos? En el caso de los que ya tengan fecha, ¿no se estaria haciendo -invisible- la informacion de los campos que ya tienen fecha?  



    Luis C



    martes, 18 de febrero de 2020 20:22

Respuestas

  • Bueno, lo solucioné así:

    1) Determinar si el valor de la fecha en la base de datos es nulo, si es así es entonces defino a espacio en blanco el -CustomFormat y a Custom el formato del Control:

                FECHADateTimePicker.CustomFormat = " "
                FECHADateTimePicker.Format = DateTimePickerFormat.Custom

    2) Luego en el evento del DateTimpePicker -MouseDown- activo el siguiente codigo:

    Private Sub FECHADateTimePicker_MouseDown(sender As Object, e As MouseEventArgs) Handles FECHADateTimePicker.MouseDown
            FECHADateTimePicker.Format = DateTimePickerFormat.Short
            FECHADateTimePicker.Value = Date.Now
        End Sub

    Con este código le indico al sistema que si hago click en el control, aparezca el formato y predefina el valor a la fecha/hora actual.

    De esta forma el control aparecerá en blanco si no tiene realmente datos, y mostrará la información solo al usar el control clickeando en el.

    Así mismo, mostrará datos, si ya los tiene .


    Luis C



    • Editado Luis Carlos H miércoles, 19 de febrero de 2020 21:19
    • Marcado como respuesta Luis Carlos H miércoles, 19 de febrero de 2020 21:32
    miércoles, 19 de febrero de 2020 21:17

Todas las respuestas

  • No te los va a mostrar empty cuando estás trabajando las propiedades  de formato.

    Probá la propiedad text o value. mydatetimepicker.text="" o mydatetimepicker.value=""

    Saludos

    miércoles, 19 de febrero de 2020 17:10
  • Bueno, lo solucioné así:

    1) Determinar si el valor de la fecha en la base de datos es nulo, si es así es entonces defino a espacio en blanco el -CustomFormat y a Custom el formato del Control:

                FECHADateTimePicker.CustomFormat = " "
                FECHADateTimePicker.Format = DateTimePickerFormat.Custom

    2) Luego en el evento del DateTimpePicker -MouseDown- activo el siguiente codigo:

    Private Sub FECHADateTimePicker_MouseDown(sender As Object, e As MouseEventArgs) Handles FECHADateTimePicker.MouseDown
            FECHADateTimePicker.Format = DateTimePickerFormat.Short
            FECHADateTimePicker.Value = Date.Now
        End Sub

    Con este código le indico al sistema que si hago click en el control, aparezca el formato y predefina el valor a la fecha/hora actual.

    De esta forma el control aparecerá en blanco si no tiene realmente datos, y mostrará la información solo al usar el control clickeando en el.

    Así mismo, mostrará datos, si ya los tiene .


    Luis C



    • Editado Luis Carlos H miércoles, 19 de febrero de 2020 21:19
    • Marcado como respuesta Luis Carlos H miércoles, 19 de febrero de 2020 21:32
    miércoles, 19 de febrero de 2020 21:17