Autor Tema: VB.Net ingresar fecha como texto Formato de Textbox - Datatimepicker DirectCast  (Leído 3481 veces)

Carlos Veron

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 2
    • Ver Perfil
Buenas tardes, estoy empezando a programar en VB.Net (VS 2019), siempre programe en VFP. Lo que encuentro un poco complicado es dar formato a los textbox para ingresar importes y fechas. Si bien para las fecha existe datatimepicker pero no me deja ingresar la fecha por teclado siempre hay que elegirla, eso para algunas cargas es molesto, incomodo.
Tambien intente con Maskedtextbox pero no se si e porque lo utilizo en un formulario dentro de un panel no lo puedo hacer funcionar, si lo pruebo desde un form solo si funciona. Si me pueden ayudar con algun link o tutorial, se los voy a agradecer.

Saludos

Carlos Veron
Santa Fe - Argentina.
« Última modificación: 30 de Mayo 2020, 15:35 por Ogramar »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2660
    • Ver Perfil
Re:Formato de Textbox - Datatimepicker
« Respuesta #1 en: 27 de Mayo 2020, 20:15 »
Buenas Carlos y bienvenido. En https://aprenderaprogramar.com/index.php?option=com_content&view=article&id=57&Itemid=86 puedes acceder a un curso de Visual Basic, aunque no sé si va a resultar adecuado con la versión que tú utilizas.

Para escribir en los foros consulta https://aprenderaprogramar.com/foros/index.php?topic=1460.0 ahí está explicado cómo poner título a los temas y las recomendaciones generales.

Creo que para capturar una fecha habría distintas opciones. Puedes capturarla como texto y luego hacer validaciones y transformarla a fecha.

Un ejemplo que he encontrado para permitir escribir la fecha al usuario con un DateTimePicker sería este aunque no lo he probado

Código: [Seleccionar]
Public Class Form1

    Private Sub TextBox1_Enter(sender As Object, e As EventArgs)
        Debug.WriteLine("Entra al TextBox")
        RemoveHandler DateTimePicker1.Validating, AddressOf DateTimePicker1_SomethingChanged

    End Sub
    Private Sub TextBox1_Leave(sender As Object, e As EventArgs)
        Debug.WriteLine("Sale del textbox")
        Dim tb = DirectCast(sender, TextBox)
        If String.IsNullOrEmpty(tb.Text.Trim()) Then
            Exit Sub
        End If
        Dim dt As DateTime
        Dim dateStringStyles = {"ddMMyyyy", "dd/MM/yyyy"}
        If DateTime.TryParseExact(tb.Text, dateStringStyles, Nothing, Globalization.DateTimeStyles.AllowWhiteSpaces, dt) Then
            DateTimePicker1.Value = dt
            tb.Text = dt.ToString("dd/MM/yyyy")
        Else
            ' alert user date was invalid
            MsgBox("Fecha no válida")
        End If
        AddHandler DateTimePicker1.Validating, AddressOf DateTimePicker1_SomethingChanged

    End Sub

    Private Sub DateTimePicker1_Enter(sender As Object, e As EventArgs)
        Debug.WriteLine("DTP entrada")
        RemoveHandler TextBox1.Leave, AddressOf TextBox1_Leave

    End Sub

    Private Sub DateTimePicker1_SomethingChanged(sender As Object, e As EventArgs)
        Debug.WriteLine("DTP VC")
        Dim dtp = DirectCast(sender, DateTimePicker)
        TextBox1.Text = dtp.Value.ToString("dd/MM/yyyy")
        AddHandler TextBox1.Leave, AddressOf TextBox1_Leave

    End Sub
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        AddHandler TextBox1.Enter, AddressOf TextBox1_Enter
        AddHandler TextBox1.Leave, AddressOf TextBox1_Leave
        AddHandler DateTimePicker1.Enter, AddressOf DateTimePicker1_Enter
        AddHandler DateTimePicker1.Validating, AddressOf DateTimePicker1_SomethingChanged
        AddHandler DateTimePicker1.Leave, AddressOf DateTimePicker1_SomethingChanged
        AddHandler DateTimePicker1.ValueChanged, AddressOf DateTimePicker1_SomethingChanged

    End Sub


End Class

Salu2

Carlos Veron

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 2
    • Ver Perfil
Re:Formato de Textbox - Datatimepicker
« Respuesta #2 en: 30 de Mayo 2020, 00:53 »
Buenas tardes, probe el codigo que me pasaron y funciona bien. Se puede ingresar la fecha con teclado y tambien elegir la fecha desplegando el datatimepicker.
Me fue de gran ayuda.

Saludos

Muchas gracias.

Carlos Verón

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".