Lo primero es validar si existen o no datos, es decir si no esta vacía la caja de texto. Hay varias formas de hacerlo es obtener el tamaño del contenido de la caja de texto y si este es menor a cero entonces significa que esta vacío: ? 1 2 3 4 5 6 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If Len(TextBox1.Text) <> 0 Then Else MessageBox.Show("Debes digitar tu número de <span class="IL_AD" id="IL_AD7">documento</span>") End If End Sub Otra forma puede ser comparándolo como si fuera una simple cadena de texto, a diferencia de la forma anterior que utilizábamos números enteros, ya que la función Len() retorna un número entero que contiene el número de caracteres de una cadena. ? 1 2 3 4 If TextBox1.Text <> "" Then Else MessageBox.Show("Debes digitar tu número de documento") End If Comprobar los tipos de datos de los formularios en Visual Basic .NET Una vez hayamos comprobado que el usuario a introducido o no datos debemos comprobar que el tipo de dato que a introducido, es decir si es un número o una fecha o una simple cadena. Para el caso de los números lo podemos comprobar con la función IsNumeric() de esta forma: ? 1 2 3 Private Sub TextBox1_KeyPress(ByVal sender As System.Object, ByVal e As System.<span class="IL_AD" id="IL_AD11">Windows</span>.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress If Not IsNumeric(e.KeyChar) Then e.Handled = True End Sub Todo desde la propiedad Keypress del Textbox al que queremos aplicarle el filtro. En este caso si no es un número lo que se esta presionando entonces la propiedad e.Handled retorna verdadero y este no dejará que se tecleen caracteres, igual si quitamos el Not del condicional este solo nos dejará escribir letras. *******************************************************************************
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Lo primero es validar si existen o no datos, es decir si no esta vacía la caja de texto. Hay varias formas de hacerlo
es obtener el tamaño del contenido de la caja de texto y si este es menor a cero entonces significa que esta vacío:
?
123456
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If Len(TextBox1.Text) <> 0 Then Else MessageBox.Show("Debes digitar tu número de <span class="IL_AD" id="IL_AD7">documento</span>") End If End Sub
Otra forma puede ser comparándolo como si fuera una simple cadena de texto, a diferencia de la forma anterior que
utilizábamos números enteros, ya que la función Len() retorna un número entero que contiene el número de
caracteres de una cadena.
?
1234
If TextBox1.Text <> "" Then Else MessageBox.Show("Debes digitar tu número de documento") End If
Comprobar los tipos de datos de los formularios en Visual Basic .NET
Una vez hayamos comprobado que el usuario a introducido o no datos debemos comprobar que el tipo de dato que a
introducido, es decir si es un número o una fecha o una simple cadena. Para el caso de los números lo podemos
comprobar con la función IsNumeric() de esta forma:
?
123
Private Sub TextBox1_KeyPress(ByVal sender As System.Object, ByVal e As System.<span class="IL_AD" id="IL_AD11">Windows</span>.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress If Not IsNumeric(e.KeyChar) Then e.Handled = True End Sub
Todo desde la propiedad Keypress del Textbox al que queremos aplicarle el filtro. En este caso si no es un número
lo que se esta presionando entonces la propiedad e.Handled retorna verdadero y este no dejará que se tecleen
caracteres, igual si quitamos el Not del condicional este solo nos dejará escribir letras.
Hola: acá les dejo un ejemplo muy sencillo en visual basic .net para evaluar las teclas presionadas cuando se ingresan datos en un textbox y solo permitir las letras ignorando todo lo que no sea una letra. Es muy básico pero les servirá de punto de partida para validar cualquier ingreso. A continuación el código….
view source
print ?
1.Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress2. If (Not Char.IsLetter(e.KeyChar) And e.KeyChar <> Microsoft.VisualBasic.ChrW(8)) Then3. e.Handled = True4. End If5.End Sub
El siguiente código es para que en un textBox podamos ingresar solo números si quieres ingresar solo enteros le pones al momento de utilizar la función que decimales sea igual a false caso contrario le pones true.
Primero debemos pegar la siguiente funcion Public Function txtNumerico(ByVal txtControl As TextBox, ByVal caracter As Char, ByVal decimales As Boolean) As Boolean If (Char.IsNumber(caracter, 0) = True) Or caracter = Convert.ToChar(8) Or caracter = "." Then If caracter = "." Then If decimales = True Then If txtControl.Text.IndexOf(".") <> -1 Then Return True Else : Return True End If End If Return False Else Return True End If End Function
Segundo en el evento Key Press de nuestro textBox digitar lo siguiente: e.Handled = txtNumerico(txtCosto, e.KeyChar, true)
En este caso permitira el acceso de numeros con su punto decimal
Espero que este codigo le sirva a alguien el rato que necesite una funcion que haga esto no la encontre. Cualquier consulta o falla del código haganmela llegar
Normalmente se nos presenta el inconveniente de saber si la dirección de correo electrónico que están escribiendo nuestros usuarios esta en un formato valido o no, para este fin el proceso a realizar es, la validacion de las partes básicas de un correo electrónico, tal como una @ un . (Punto) y un dominio consecuente
Para poder lograr esta validacion usaremos una expresión regular, en vb.net
Espacio de nombres:
mports System.Text.RegularExpressions
Función
Public Function validar_Mail(ByVal sMail As String) As Boolean
' retorna true o false
Return Regex.IsMatch(sMail, _
"^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-
9-]+)*(\.[a-z]{2,4})$")
End Function
Llamado a la funcion la cual puede ser desde el evente leave de el textbox deseado
If validar_Mail(LCase(TxtMail.Text)) = False Then
MessageBox.Show("Dirección de correo electronico no valida,
" por favor seleccione un correo valido", "Validación de
correo electronico", MessageBoxButtons.OK,
MessageBoxIcon.Exclamation)
TxtMail.Focus()
TxtMail.SelectAll()
End If
Función para validar la entrada de datos numéricos por teclado en un formulario de vb.net.
Voy a explicar la rutina que utilizo yo para validar la entrada de datos numéricos en un formulario realizado en vb.net.La función es la siguiente, creo que no hace falta explicación, con los comentarios tenemos suficiente información. Si hace falta alguna aclaración, ya sabeis un comentario en el post y ya os responderé.
La llamada a la función se realizará dentro del evento "TextChanged".
Mira independientemente de que plataforma usas (Web o Windows forms) los formularios de validacion de usuarios y contraseñas siguen los mismos principios
Para poder hacer la validación necesitas pegar TextBox de nombreTextBox de contraseñaBoton de aceptarBoton de cancelar
Para validar a los usuarios debes tener incluidos los nombres de los usuarios en una tabla de tu base de datos, donde se incluye Id, nombre, contraseña.
Cuando el usuario presione el botón de aceptar necesitas llamar a una funcion booleana que te indica si el usuario existe o no en la base de datos, en caso afirmativo pasa a la forma o pagina web principal, en caso contrario le envias el mensaje en donde indicas que el usuario no existe.
Te dejo un ejemplo de la funcion boolena
-------------------llamado a la funcionPrivate Sub Command1_Click()IF ExisteUsuario(txtUser.text, txtContraseña.text) THEN'Mandar a llamar aqui a la siguiente forma o pagina webELSEMsgbox "El usuario no existe"END IF
end sub
-------------------FUNCIONprivate function ExisteUsuario(byval usuario, byval contraseña) as boolean...aqui ingresas el codigo que buscara en la base de datos para ver si existe el usuario, logicamente tu control que hace las consultas tambien puede retornar el conteo de los registros encontrados, en este caso si existe un valor mayor a cero (es decir que si se retorno un registro) entonces la funcion retorna true, en caso contrario retorna un falseend function
ToolTip: Explotemoslo al maximo! Muchas veces solo nos limitamos a asignar un ToolTip a un control como un botón o una imagen y nos olvidamos de la cantidad de configuraciones que nos ofrece este simple pero completo control!
(Mi intención es explotar al máximo el rendimiento de este objeto y eso que he tenido mis dudas hoy sobre que escribir, ya que mi primera intención era el errorprovider, pero lo dejare para la siguiente vez.)
Bueno, empecemos, lo primero insertaremos dos botones y un ToolTip en nuestro formulario y nos aseguramos que su propiedad Active este a True. Para asociar el ToolTip a nuestros controles solo tenemos que utilizar el método setToolTip
Como veis es muy sencillo, con un solo tooltip podemos asignar todos los controles, aunque asi no podemos personalizarlos, necesitariamos mas instancias del objeto. Esto me imagino que todos ya sabriais ahora vamos a personalizarlo un poquillo.
Propiedad
IsBallon (Boolean): Si esta a true se muestra como un bocadillo.
TootTipIcon(enumeracion): Se asigna iconos.
ShowAlways(Boolean): si esta a true aunque no tenga el foco la aplicación se podra ver el tooltip.
ToolTipTitle (String): una cadena que representara el titulo del objeto.
Tambien podemos configurar el color del fondo con el BackColor y el color de letra con la propiedad ForeColor. Asi como la animacion y el efecto de atenuacion con UseAnimation y UseFading
Una vez visto el cambio de imagen que le podemos dar a nuestro tooltip ahora toca de configurar su comportamiento.
Tenemos 3 propiedades que serán las que controles su comportamiento.
- AutoPopDelay: Controla la cantidad de tiempo que se mostrara el tooltip- InitialDelay: Controla la cantidad de tiempo que debe estar el ratón encima para que se muestre.- ReshowDelay: controla el tiempo que tardara en aparecer un tooltip después de que se cierre el anterior. Es decir, si se esta mostrando un ToolTip y te sitúas encima de otro objeto que también posee otro tooltip tardara el tiempo que se estipule en esta propiedad.
* Todas estas propiedades están en milisegundos.
Si quieres un calculo automático de estas propiedades solo tienes que meter el tiempo en AutomaticDelay la cantidad de tiempo en milisegundos y estas tres propiedades se calcularan siguiendo estos criterios 5 * N , N , N/5 siendo N la cantidad introducida en AutomaticDelay.
“(?!^[0-9]*$)(?!^[a-zA-Z]*$)^([a-zA-Z0-9]{8,10})$” Entre 8 y 10 caracteres, por lo menos un digito y un alfanumérico, y no puede contener caracteres espaciales
Fecha (EEUU) “^\d{1,2}\/\d{1,2}\/\d{2,4}$” Por ejemplo 01/01/2005Fecha (EEUU) “^\d{1,2}\/\d{1,2}\/\d{2,4}$” Por ejemplo 01/01/2005Moneda “^(-)?\d+(\.\d\d)?$” + o – cantidad, sin ningún
símbolo. Si tiene punto decimal, decimal, requiere 2 caracteres numéricos después del punto decimal
He visto muchas veces esta pregunta en los foros, si mal no recuerdo en el año 2000 alguién que no recuerdo su nombre envío el siguiente algoritmo para VB 6.0 para realizar dicha conversión.... ha sido unos de los mejores que he visto.. a continuación se los adjunto, espero que también les puedan servir.
Sirve tanto para VB 6.0, como para Visual Basic .NET
Public Function Num2Text(ByVal value As Double) As String Select Case value Case 0 : Num2Text = "CERO" Case 1 : Num2Text = "UN" Case 2 : Num2Text = "DOS" Case 3 : Num2Text = "TRES" Case 4 : Num2Text = "CUATRO" Case 5 : Num2Text = "CINCO" Case 6 : Num2Text = "SEIS" Case 7 : Num2Text = "SIETE" Case 8 : Num2Text = "OCHO" Case 9 : Num2Text = "NUEVE" Case 10 : Num2Text = "DIEZ" Case 11 : Num2Text = "ONCE" Case 12 : Num2Text = "DOCE" Case 13 : Num2Text = "TRECE" Case 14 : Num2Text = "CATORCE" Case 15 : Num2Text = "QUINCE" Case Is <; 20 : Num2Text = "DIECI" & Num2Text(value - 10) Case 20 : Num2Text = "VEINTE" Case Is <; 30 : Num2Text = "VEINTI" & Num2Text(value - 20) Case 30 : Num2Text = "TREINTA" Case 40 : Num2Text = "CUARENTA" Case 50 : Num2Text = "CINCUENTA" Case 60 : Num2Text = "SESENTA" Case 70 : Num2Text = "SETENTA" Case 80 : Num2Text = "OCHENTA" Case 90 : Num2Text = "NOVENTA" Case Is <; 100 : Num2Text = Num2Text(Int(value \ 10) * 10) & " Y " & Num2Text(value Mod 10) Case 100 : Num2Text = "CIEN" Case Is <; 200 : Num2Text = "CIENTO " & Num2Text(value - 100) Case 200, 300, 400, 600, 800 : Num2Text = Num2Text(Int(value \ 100)) & "CIENTOS" Case 500 : Num2Text = "QUINIENTOS" Case 700 : Num2Text = "SETECIENTOS" Case 900 : Num2Text = "NOVECIENTOS" Case Is <; 1000 : Num2Text = Num2Text(Int(value \ 100) * 100) & " " & Num2Text(value Mod 100) Case 1000 : Num2Text = "MIL" Case Is <; 2000 : Num2Text = "MIL " & Num2Text(value Mod 1000) Case Is <; 1000000 : Num2Text = Num2Text(Int(value \ 1000)) & " MIL" If value Mod 1000 Then Num2Text = Num2Text & " " & Num2Text(value Mod 1000) Case 1000000 : Num2Text = "UN MILLON" Case Is <; 2000000 : Num2Text = "UN MILLON " & Num2Text(value Mod 1000000) Case Is <; 1000000000000.0# : Num2Text = Num2Text(Int(value / 1000000)) & " MILLONES " If (value - Int(value / 1000000) * 1000000) Then Num2Text = Num2Text & " " & Num2Text(value - Int(value / 1000000) * 1000000) Case 1000000000000.0# : Num2Text = "UN BILLON" Case Is <; 2000000000000.0# : Num2Text = "UN BILLON " & Num2Text(value - Int(value / 1000000000000.0#) * 1000000000000.0#) Case Else : Num2Text = Num2Text(Int(value / 1000000000000.0#)) & " BILLONES" If (value - Int(value / 1000000000000.0#) * 1000000000000.0#) Then Num2Text = Num2Text & "
Para poder seleccionar toda la fila de un grid al hacer click encima utilizaremos la siguiente función:
Private Sub DgUrls_MouseUp(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles DgUrls.MouseUpDim pt As System.Drawing.Pointpt = New Point(e.X, e.Y)
Dim hti As DataGrid.HitTestInfohti = DgUrls.HitTest(pt)If hti.Type = DataGrid.HitTestType.Cell ThenDgUrls.CurrentCell = New DataGridCell(hti.Row, hti.Column)DgUrls.Select(hti.Row)End IfEnd Sub
Solovb es un sitio que se caracteriza por sus ejemplos simples y sencillos. Hoy un ejemplo del uso de TabControl.
En más de una oportunidad tuve la necesidad de seleccionar mediante código que pagina (TabPage) del control debería ser la que se mostrara, la solución es sencilla pero quizas la estes necesitando en este momento y aquí te la dejo.
Primero necesitaremos un formulario windows, un TabControl y algunos botones dispuestos de forma similar a lo que se ve en la siguiente imagen:
Y ahora en el evento click de cada botón debemos ingresar el siguiente codigo
view source
print ? 01.Private Sub btnTab1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnTab1.Click02. TabControl1.SelectedIndex = 003.End Sub04. 05.Private Sub btnTab2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnTab2.Click06. TabControl1.SelectedIndex = 107.End Sub08. 09.Private Sub btnTab3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnTab3.Click10. TabControl1.SelectedIndex = 211.End Sub12. 13.Private Sub btnTab4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnTab4.Click14. TabControl1.SelectedIndex = 315.End Sub
Y eso es todo, solo queda ejecutar, probar e implementar donde quieran. Espero que les sirva.
Hoy quiero comentarle algunas cositas referentes al trabajo con fechas, esas cosas que uno dice… “Pero eso todo el mundo lo sabe…”, pero como este sitio no está dedicado a expertos sino a ayudar a quienes se inician en este mundo de la programación en visual basic .net, me parece mas que apropiado hablar sobre fechas.
Antes de comenzar acá les dejo algunas definiciones que sería bueno conocer:
DateSerial
Devuelve un valor Date que representa un año, mes y día específicos, con la información de la hora establecida en medianoche (00:00:00).
Datetime.Now
Obtiene un objeto DateTime que se establece en la fecha y hora actual de este equipo, expresada como hora local.
DateAdd
Devuelve un valor de tipo Date que contiene un valor de fecha y hora al que se ha agregado un intervalo de tiempo especificado.
Bueno, sin más rodeos pasemos a los ejemplos. En esta oportunidad de trata de un formulario con una serie de botones y cajas de texto que nos van a informar distintas fecha como por ejemplo, el último día del mes actual o el primer día hábil de un mes, etc. Es muy sencillo y el ejemplo creo que es lo suficientemente claro por lo que no voy a explicarlo. Simplemente presten atención al código y podrán encontrar respuesta a muchas de las dudas que se generan al trabajar con fechas.
Este es el formulario que usaremos para el ejemplo:
print ? 01.Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click02. 'Fecha Actual03. MsgBox(Now.Date, MsgBoxStyle.OkOnly, "Fecha Actual")04.End Sub05. 06.Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click07. 'Fecha y Hora Actual08. MsgBox(Now(), MsgBoxStyle.OkOnly, "Fecha y Hora Actual")09.End Sub10. 11.Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click12. 'Primer Día del Mes13. MsgBox(DateSerial(Now.Year, Now.Month, 1), MsgBoxStyle.OkOnly, "Primer Día del Mes")14.End Sub15. 16.Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click17. 'Ultimo día del Mes18. Dim fecha1 As Date = DateAdd(DateInterval.Month, 1, Now.Date)19. MsgBox(DateAdd(DateInterval.Day, -1, DateSerial(fecha1.Year, fecha1.Month, 1)), MsgBoxStyle.OkOnly, "Ultimo día del Mes")20.End Sub21. 22.Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click23. 'Primer Día Hábil24. Dim primerDiaHabil As Date = DateSerial(Now.Year, Now.Month, 1)
25. Select Case primerDiaHabil.Date.DayOfWeek26. Case 1 'Domingo27. primerDiaHabil = DateAdd(DateInterval.Day, 1, primerDiaHabil)28. Case 6 'Sabado29. primerDiaHabil = DateAdd(DateInterval.Day, 2, primerDiaHabil)30. Case Else 'De lunes a Viernes31. ' no hace nada32. End Select33. MsgBox(primerDiaHabil, MsgBoxStyle.OkOnly, "Primer Día Hábil")34.End Sub35. 36.Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click37. 'Sumar n Dias a Hoy38. MsgBox(DateAdd(DateInterval.Day, CType(TextBox1.Text, Integer), Now.Date), MsgBoxStyle.OkOnly, "Sumar n Dias a Hoy")39.End Sub40. 41.Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click42. 'Sumar n Meses a Hoy43. MsgBox(DateAdd(DateInterval.Month, CType(TextBox2.Text, Integer), Now.Date), MsgBoxStyle.OkOnly, "Sumar n Meses a Hoy")44.End Sub
Quiero en esta oportunidad mostrarle un simple ejemplo de validación de datos ingresados en un datagridview. Este es un potente control, muy rico, y con muchísimas opciones de configuración.
Esta validación la haremos controlando el evento CellValidating del datagridview.
Para el ejemplo vamos a necesitar: un formulario y un datagridview. como se ve en la siguiente imagen:
En el evento load del formulario seteamos la propiedad Dock para que el control ocupe todo el formulario y creamos las columnas para el ingreso de los datos.
El evento que manejamos se llama CellValidating y con un select case vamos a validar los datos dependiendo de que columna es la que se está editando. Esto lo sabemos porque consultamos:
DataGridView1.Columns(e.ColumnIndex).Name
Cuando se ingresa un dato no válido debemos completar la propiedad ErrorTex del row que estamos editando con un mensaje de error, el cual aparecerá a la izquierda y lo leemos al colocar el puntero del mouse sobre el icono rojo que aparece.
Private Sub DataGridView1_CellValidating(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellValidatingEventArgs) Handles DataGridView1.CellValidating
Select Case DataGridView1.Columns(e.ColumnIndex).Name 'El nombre quiero que sea obligatorio, por eso 'no lo dejo salir de la celda hasta que lo ingrese Case "Nombre" If String.IsNullOrEmpty(e.FormattedValue.ToString()) Then DataGridView1.Rows(e.RowIndex).ErrorText = _ "El Nombre no puede estar vacío" e.Cancel = True End If
Case "Apellido" 'lo mismo pasa con el apellido, es obligatorio If String.IsNullOrEmpty(e.FormattedValue.ToString()) Then DataGridView1.Rows(e.RowIndex).ErrorText = _ "El Apellido no puede estar vacío" e.Cancel = True End If Case "Cargo" 'En el caso del cargo, tengo cuatro opciones o vacío 'Si no concueda con ninguna no puede salir If e.FormattedValue.ToString() <> "Vendedor" And _ e.FormattedValue.ToString() <> "Encargado" And _ e.FormattedValue.ToString() <> "Supervisor" And _ e.FormattedValue.ToString() <> "Gerente" And _ e.FormattedValue.ToString() <> "" Then DataGridView1.Rows(e.RowIndex).ErrorText = _ "El dato no es válido: ingrese Vendedor o Encargado o Supervisor o Gerente" e.Cancel = True Else DataGridView1.Rows(e.RowIndex).ErrorText = String.Empty End If Case "Categoria" If e.FormattedValue.ToString() <> "A" And _ e.FormattedValue.ToString() <> "B" And _ e.FormattedValue.ToString() <> "C" And _ e.FormattedValue.ToString() <> "" Then DataGridView1.Rows(e.RowIndex).ErrorText = _ "Categorias permitidas: A, B o C" e.Cancel = True Else DataGridView1.Rows(e.RowIndex).ErrorText = String.Empty End If Case "Sueldo" 'se valida que sea un dato numérico If Not IsNumeric(e.FormattedValue.ToString()) And Not String.IsNullOrEmpty(e.FormattedValue.ToString()) Then DataGridView1.Rows(e.RowIndex).ErrorText = _ "Debe ingresar un valor numérico" e.Cancel = True Else DataGridView1.Rows(e.RowIndex).ErrorText = String.Empty End If End Select End Sub
Como clonar un formulario windowsPublicado por Eliseo en Controles, Ejemplos, Tutoriales el 09 21st, 2010 | 14 respuestas
Muchas veces puede surgir la necesidad de hacer dos o mas formularios iguales o muy parecidos. Lo primero que se nos ocurre es ir al explorador de soluciones, seleccionar un formulario y hacer Control-C y Control-V para crear un nuevo formulario igual al primero, pero… para nuestra sorpresa aparecen unos cuantos errores que nos pueden hacer doler la cabeza. Para ayudar con este tema les presento un breve tutorial para saber como copiar (a mano) un formulario windows.
Primero abrimos (para el ejemplo) un nuevo proyecto con un formulario y le agregamos algunos controles y componentes diseñados como más nos guste… aquí un ejemplo:
Para el ejemplo es más que suficiente.
Luego vamos al explorador de soluciones y abrimos el código del designer. En nuestro caso Form1.designer.vb
Ahora viene lo bueno… agregamos a nuestro proyecto un nuevo formulario y sin hacer nada mas abrimos el designer del nuevo formulario (en mi caso Form2.designer.vb) y reemplazamos el código, que en la siguiente imagen aparece seleccionado por el que anteriormente habíamos copiado.
Listo! al guardar y ver en vista de diseño tendremos un segundo formulario igualito al primero.
1. Option Explicit On 2. Option Strict On 3. ' Espacio de nombres con clases para el manejo de expresiones regulares en .NET 4. Imports System.Text.RegularExpressions 5. 6. Public Class Form1 7. 8. Private Function validar_Mail(ByVal sMail As String) As Boolean 9. ' retorna true o false 10. Return Regex.IsMatch(sMail, _ 11. "^([\w-]+\.)*?[\w-]+@[\w-]+\.([\w-]+\.)*?[\w]+$") 12. End Function 13. 14. Private Sub Button1_Click(ByVal sender As System.Object, _ 15. ByVal e As System.EventArgs) Handles Button1.Click 16. 17. Dim sMail As String 18. 19. sMail = InputBox("Escribir una dirección de email", "validación") 20. 21. If Len(sMail) > 0 Then 22. MsgBox(validar_Mail(sMail), MsgBoxStyle.Information) 23. End If 24. End Sub 25. 26. Private Sub Form1_Load(ByVal sender As System.Object, _ 27. ByVal e As System.EventArgs) _ 28. Handles MyBase.Load 29. 30. Button1.Text = " Validar mail " 31. 32. End Sub 33. End Class
Dim aDateString, aTimeString As StringDim aDate, aTime As DateaDateString = "February 12, 1969"aTimeString = "4:35:47 PM"' The following line of code sets aDate to a Date value.aDate = CDate(aDateString)' The following line of code sets aTime to Date value.aTime = CDate(aTimeString)
Validar que solo se ingresen letras en un textbox
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress2. If (Not Char.IsLetter(e.KeyChar) And e.KeyChar <> Microsoft.VisualBasic.ChrW(8)) Then3. e.Handled = True4. End If5.End Sub
El tipo char tiene varias propiedades que nos resultarían muy útiles a la hora de realizar validaciones. En el ejemplo vemos la propiedad .IsLetter… aca algunas más para recordar:
IsControl: Indica si el caracter unicode especificado se clasifica por categorias como un caracter de Control
IsDigit: Indica si el caracter unicode especificado se clasifica por categorias como un Dígito Decimal
IsNumber: Indica si el caracter unicode especificado se clasifica por categorias como un número
IsLetterOrDigit: Indica si el caracter unicode especificado se clasifica por categorias como un caracter alfabético o un Dígito Decimal
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress If InStr(1, "0123456789.-" & Chr(8), e.KeyChar) = 0 Then e.KeyChar = "" End If End Sub
Public Function EsNumero(KeyAscii As Integer) As Boolean'Agrego el "." decimal (lo podes cambiar por "," si usas ese...'Y agrego el Ascii "8" que es la tecla BORRARSelect Case KeyAscii Case Asc("0"), Asc("1"), Asc("2"), Asc("3"), Asc("4"), Asc("5"), Asc("6") & _ Asc("7"), Asc("8"), Asc("9"), Asc("."), 8 EsNumero = True Case Else EsNumero = FalseEnd SelectEnd Function
Private Sub Text1_KeyPress(KeyAscii As Integer)If EsNumero(KeyAscii) = False Then MsgBox "Este es el mensaje de alerta", vbCritical KeyAscii = 0 'no escribo el caracterEnd IfEnd Sub
Normalmente se nos presenta el inconveniente de saber si la dirección de correo electrónico que están escribiendo nuestros usuarios esta en un formato valido o no, para este fin el proceso a realizar es, la validacion de las partes básicas de un correo electrónico, tal como una @ un . (Punto) y un dominio consecuente
Para poder lograr esta validacion usaremos una expresión regular, en vb.net
Espacio de nombres:
Imports System.Text.RegularExpressions
Función
Public Function validar_Mail(ByVal sMail As String) As Boolean ' retorna true o false Return Regex.IsMatch(sMail, _ "^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0- 9-]+)*(\.[a-z]{2,4})$") End Function
Llamado a la funcion la cual puede ser desde el evente leave de el textbox deseado
If validar_Mail(LCase(TxtMail.Text)) = False Then MessageBox.Show("Dirección de correo electronico no valida, el correo debe tener el formato: [email protected], " & _ " por favor seleccione un correo valido", "Validación de correo electronico", MessageBoxButtons.OK, MessageBoxIcon.Exclamation) TxtMail.Focus() TxtMail.SelectAll()End If
convierte todo a mayúsculas en durante la ejecución, así:
Private Sub cbfamilia_Leave(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbfamilia.LeaveDim a As Stringa = cbfamilia.Text.ToUpper 'convierte a mayúsculasIf cbfamilia.Items.Contains(a).ToString.ToUpper Then 'comparas mayúsculas con mayúsculasElseMsgBox("Elija una familia valida")cbfamilia.Focus()End IfEnd Sub
Saber que tecla se ha pulsado en un textbox y otras cosillas (VB)
Este es el código para Visual Basic .NET
Private Sub txtNumero_KeyPress(ByVal sender As Object, _ ByVal e As System.Windows.Forms.KeyPressEventArgs) _ Handles txtNumero.KeyPress ' Si se pulsa la tecla Intro, pasar al siguiente If e.KeyChar = Convert.ToChar(Keys.Return) Then 'If e.KeyChar = ChrW(Keys.Return) Then e.Handled = True txtFecha.Focus() ElseIf e.KeyChar = "."c Then ' si se pulsa en el punto se convertirá en coma e.Handled = True SendKeys.Send(",") End IfEnd Sub'Private Sub txtFecha_KeyPress(ByVal sender As Object, _ ByVal e As System.Windows.Forms.KeyPressEventArgs) _ Handles txtFecha.KeyPress Select Case e.KeyChar Case Convert.ToChar(Keys.Return) 'ChrW(Keys.Return) e.Handled = True btnAdd.Focus() Case "."c, ","c, "-"c ' si se pulsa en estos caracteres, se convertirá en / e.Handled = True SendKeys.Send("/") End SelectEnd Sub'Private Sub txtNumero_Enter(ByVal sender As Object, _ ByVal e As System.EventArgs) _ Handles txtNumero.Enter, txtFecha.Enter ' Al recibir el foco, seleccionarlo todo CType(sender, TextBox).SelectAll()End Sub'Private Sub ListBox1_KeyDown(ByVal sender As Object, _ ByVal e As System.Windows.Forms.KeyEventArgs) _ Handles ListBox1.KeyDown ' Si se pulsa en Supr, borrar el elemento seleccionado If e.KeyCode = Keys.Delete Then
ListBox1.Items.Remove(ListBox1.SelectedItem) End IfEnd Sub'Private Sub btnAdd_Click(ByVal sender As Object, _ ByVal e As System.EventArgs) _ Handles btnAdd.Click ' Añadir el contenido de las cajas al listbox ListBox1.Items.Add(txtNumero.Text & ", " & txtFecha.Text) txtNumero.Focus()End Sub'Private Sub btnCerrar_Click(ByVal sender As Object, _ ByVal e As System.EventArgs) _ Handles btnCerrar.Click ' cerrar el formulario ' (si este es el único formulario, también se cerrará el ejecutable) Me.Close()End Sub