• Lunes 18 de Noviembre de 2024, 02:31

Autor Tema:  Controlaxcalendar 11.0  (Leído 2238 veces)

karolarivero

  • Miembro activo
  • **
  • Mensajes: 25
    • Ver Perfil
Controlaxcalendar 11.0
« en: Viernes 8 de Junio de 2007, 18:04 »
0
Ante todo un cordial saludo!
 
Estoy usando el control AxCalendar 11.0 y cada vez que ejecuto la aplicación este no se actualiza con respecto a la fecha del sistema. Como puedo hacer en ese caso?


Además, este me da la opción de obtener el día, mes, año que seleccione un usuario, pero no se como hacer para obtener el día de la semana que corresponde a esa fecha pues quiero mostrarla en un TextBox de la siguiente forma: Lunes, 07 de Abril de 2007, cualquier información que tengan al respecto se lo agradeceré de ante mano.
MCRS

Nebire

  • Miembro HIPER activo
  • ****
  • Mensajes: 670
    • Ver Perfil
Re: Controlaxcalendar 11.0
« Respuesta #1 en: Lunes 2 de Julio de 2007, 11:10 »
0
Bueno, no estoy seguro de lo que pides, porque no indicas que esperas del usuario... tengo que suponer...

Veamos, si simplemente vas a manejar fechas, puedes pasar del 'axcalendar' ese y usar la clase gregoriancalendar ... aquí te pongo un código de ejmplo para obtener el día de la semana...

Código: Text
  1. Public Class Form1
  2.  
  3.     Friend cal As New System.Globalization.GregorianCalendar
  4.  
  5.  
  6.     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  7.         TextBox1.Text = cal.GetDayOfWeek(Today).ToString
  8.      End Sub
  9. End Class
  10.  
  11.  

Tiene un pequeño inconveniente y es que te da el día en inglés, pero vamos se subsana rápido con este pequeño código:

Código: Text
  1. Module Module1
  2.     Structure calendarioEspañol
  3.         Public Enum SemanaEspañol
  4.             Lunes = 1
  5.             Martes = 2
  6.             Miércoles = 3
  7.             Jueves = 4
  8.             Viernes = 5
  9.             Sábado = 6
  10.             Domingo = 7
  11.         End Enum
  12.         Public Function convert(ByVal diaSemana As SemanaEspañol) As String
  13.              Return diaSemana.ToString
  14.         End Function
  15.         Dim comentario As String 'no hace nada, pero una estructura necesita un miembro.
  16.     End Structure
  17. End Module
  18.  
y entonces cambiamos en el form la línea que decía:
 
Código: Text
  1. TextBox1.Text = cal.GetDayOfWeek(Today).ToString
  2.  
por estas 2 líneas:
Código: Text
  1. Dim se As calendarioEspañol 'SemanaEspañol = 0
  2. TextBox1.Text = se.convert(cal.GetDayOfWeek(Today))
  3.  

Claro que si lo que necesitas es que un usuario pinche arbitrariamente en una u otra fecha entonces necesitas un objeto calendar representable en la pantalla, se podría hacer partiendo del gregoriancalendar, pero no merece la pena perder el tiempo en hacerlo salvo que quieras personalizar uno excesivamente a tu modo, en fin en este caso te recomiendo que uses el  componente: DateTimePicker es como un combobox, muestra la fecha en la forma que tú indicas (en el idioma que el usuario tenga como cultureinfo ;español, francés alemán, etc..) ,y al pulsar en la solapa, al igual que el combo se despliega y se muestra el calendario del mes, que puedes pulsar en el día que quieras, o pasar el mes adelante o atrás...  Si activas la propiedad showUpDown a true, se comporta como un listbox, no se despliega el calendario y se cambia de día en día pulsando arriba o abajo....

Tiene 2 propiedades que son las que más vas a usar text y value; text te devuelve la fecha y hora en la forma: viernes, 13 de enero de 2045 ; value te lo da en la forma: 13/01/2045 11:10:25

Además es bastante personalizable en cuanto a colores y a como quieres que se muestre. con la propiedad format le indicas el modo en que aparezca el letrero en el control long (es como el text), short (es como value pero sin hora), time solo la hora, o custom (te lo preparas tú). Además tiene para indicar un fecha mínima y una fecha máxima, así puedes acotarlo si lo precisas...

Luego hay otro control que es como el calendario pero sin la barra de letrero que se llama monthCalendar (si no te aparece en la barra de herramientas búscalo en los componentes, pinchando en la toolbox y luego en 'choose item', localizas el control),  este permite algunas cosas que el otro no deja,  mira sus propiedades por ejemplo showWeekNumbers=true permite ver el número de semana del año..

Saludos...
«Ma non troppo»
----> ModoVacaciones = False<----