Ir al contenido principal

Nullable DateTimePicker (DateEditPicker)

Bueno, luego de haberme ausentado tanto de mi blog y no es que lo haya abandonado o haya dejado de programar, solo que he estado ocupado en otras cosas personales.

Bien, recientemente desarrollando una aplicación para un cliente me toco enfrentarme de frente con un campo fecha nulo, por la forma en que se desarrollo el proyecto y las necesidades del cliente tuve que dejar con valores nulos la fecha de nacimiento de los clientes, luego al iniciar a desarrollar la parte que corresponde a los clientes me vi en la necesidad de adaptar el control DateTimePicker para poder usarlo con fechas nulas, para no hacer muy largo el cuento, como hacemos todos los programadores para evitar la fatiga comense a googlear pero no me gustaron las opciones que encontré; entonces adapte un control para tal propósito, pero luego me vi en la necesidad de hacer que dicho control ademas de fecha también pudiera capturar la hora, pero como era un control hechizo no se podía, así que me tome mi tiempo para poder escribir un control para tal proposito.

En fin, la idea del control es que le permita al usuario digitar la fecha parte por parte y cuando digo parte por parte me refiero a digitar el día, el mes y el año "dd/MMM/yyyy" sin auto-completar la fecha con el mes y año actual como lo hacen la mayoría de los controles que aceptan fechas nulas.

La idea de digitar la fecha parte por parte me llevo a un dilema, ¿Como hago para hacerle saber al usuario que parte de la fecha debe digitar o que parte de la fecha esta editando cuando sea nula? (Día)/(Mes)/(Año)
como también el dilema ¿Como lo hago?

Luego de eso, era también que el control funcionar como el DateTimePicker, usando formatos ya definidos o usar un formato personalizado.

Así que lo ideal fue ver detenidamente como funcionaba el DateTimePicker hasta que logre reproducir el funcionamiento de este y como resultado:

Formato: Long




Formato: Short




Formato:




Formato: Custom (dddd, dd/MMM/yyyy HH:mm:ss tt)




Ademas de poderle agregar botones como también una imagen como lo hago con el control TextEditor, estas dos opciones eran las mas fáciles, el problema era saber según el formato donde quedaba cada parte de la fecha a editar ya que en un formato personalizado podemos usar como por ejemplo:

dddd, dd/MMM/yyyy ----- d/M,

Ejemplo en imagen:










y como sabemos el Control DateTimePicker nos permitirá editar la parte día y mes en ambas ocurrencias.

así que como resultado he creado un control que he llamado DateEditPicker que permite editar fechas nulas indicando al usuario que parte de la fecha esta editando cuando la fecha es nula.

Pueden descargar este proyecto para que prueben el control y me hagan saber sus come ntarios.

Así que espero les guste y les sea de utilidad.

Salu2,





Comentarios

Entradas populares de este blog

NetBarControl

Actualización.
NetBarControl - Description Item Style (New)




NetBarControl (Outlook Bar) es uno de los controles que muchas veces buscamos para usar en nuestras aplicaciones, pero siempre encontramos en internet versiones pagables y tal vez no contamos con el presupuesto esperado como para comprar uno y las versiones gratis que se logran encontrar, pues como son gratis no implementan en su totalidad la funcionalidad que esperamos encontrar en un control de este tipo. Antes de comenzar a escribir este control dedique tiempo en buscar uno por internet que tuviera toda la funcionalidad o por lo menos una interfaz disponible en modo de diseño, pero, no logre encontrar uno, así que me propuse crearlo como a mí me gustaría que funcionara uno gratis y al final llegue a la conclusión de ¿Porque no hay uno completo, gratis y que incluya el código fuente? y la respuesta es:No es fácil, pero tampoco es cosa de otro mundo. Con esto no digo que otro programador no lo pueda hacer o que los ejemplos en…

ComboBox-MultiColumns

ComboBox-MultiColumns Update


Como bien sabemos el Set de Controles de Windows de .Net Framework incluye el control ComboBox pero este no soporta mostrar multiples columnas, en su lugar muestra una lista simple ya sea agregada manual mente usando la propiedad Items o según el origen de datos definido a traves de la propiedad DataSource, usando la propiedad DisplayMember para indicar la propiedad o campo a mostrar en la lista desplegable. Bien… la ventaja de los controles de .Net Framework es que los podes extender para mejorar su uso en nuestros desarrollos, en este caso extenderemos el Control ComboBox para reemplazar la lista desplegable por nuestra propia versión que mostrara “N” cantidad de columnas que necesitemos, para esto haremos uso de las siguientes clases ToolStripDropDown y ToolStripControlHost. En la ayuda de MSDN podemos encontrar un ejemplo sobre como usar la clase ToolStripDropDown para mostrar un TreeView. parte de este ejemplo lo he tomado para crear este Control ComboBo…

TextEditor

Este control nace a raíz de una pregunta en el foro de Visual Basic .Net, sobre como cambiar el borde de un TextBox a un borde personalizado y además andaba buscando cambiar la apariencia del control NetBarControl para poder aplicarle una nueva propiedad para cambiar el estilo. ejemplo:


Aun que esta imagen solo es un pre-formato de cómo funcionara el control NetBarControl, solo que me distraje creando este nuevo control TextEditor. Así que le echaré mano al terminado este nuevo control.







Bien, la idea inicial era solo agregar botones a un control TextBox, pero luego usando el Mozilla, al descargar unos archivos me percate de un control en la parte inferior de esta venta de descargar, aun que se suele ver mucho en las páginas Web, pero me llamo la atención aquí en el Mozilla y en el Window Live Messenger.


Entonces… me entro el gusano de la curiosidad, agregar la imagen luego de agregar los botones ya no era la parte difícil, la parte curiosa es mostrar el Texto como marca de agua, enco…