Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: Carlos Veron en 27 de Mayo 2020, 20:00
-
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.
-
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
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
-
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