Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Mat311 Cálculo
Mat311 Cálculo
?
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
1Button1.Click
2 If Len(TextBox1.Text) <> 0 Then
3 Else
MessageBox.Show("Debes digitar tu número de <span class="IL_AD"
4id="IL_AD7">documento</span>")
5 End If
6 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.
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:
?
Private Sub TextBox1_KeyPress(ByVal sender As System.Object, ByVal e As System.<span
1class="IL_AD" id="IL_AD11">Windows</span>.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
2 If Not IsNumeric(e.KeyChar) Then e.Handled = True
3 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.KeyPress
2. If (Not Char.IsLetter(e.KeyChar) And e.KeyChar <> Microsoft.VisualBasic.ChrW(8)) Then
3. e.Handled = True
4. End If
5.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.
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
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
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é.
************************************************************
Mira independientemente de que plataforma usas (Web o Windows forms) los formularios de validacion de usuarios y
contraseñas siguen los mismos principios
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.
-------------------llamado a la funcion
Private Sub Command1_Click()
IF ExisteUsuario(txtUser.text, txtContraseña.text) THEN
'Mandar a llamar aqui a la siguiente forma o pagina web
ELSE
Msgbox "El usuario no existe"
END IF
end sub
-------------------FUNCION
private 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 false
end function
********************************************************************
(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
ToolTip.SetToolTip(btnAceptar, "Boton Aceptar")
ToolTip.SetToolTip(btnCancelar, "Boton Cancelar")
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
ShowAlways(Boolean): si esta a true aunque no tenga el foco la aplicación se podra ver el tooltip.
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.
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.
Bueno esto es mas o menos todo, ya veis que se pueden hacer varias cosas y no solo mostrar el tooltip! dale un poco
de color a tu aplicaión!!
***************************************************
Combobox
**************************************************
EXPRESIONES REGULARES
***************************************************
Formatos de fecha
2 Return dtm.ToString(format)
3 End Function
view source
print?
1 TextBox1.Text = ChangeFormat(DateTime.Now,"MM/dd/yyyy")
……………
**********************************************************************
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
End Function
****************************************************************
' Con el if, mandamos el messagebox y si la respuesta es un No, entonces cancela el método closing
e.Cancel = True
End If
End Sub
*****************************************************************************************
Para poder seleccionar toda la fila de un grid al hacer click encima utilizaremos la siguiente función:
*****************************************************************************
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.Click
02. TabControl1.SelectedIndex = 0
03.End Sub
04.
05.Private Sub btnTab2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles btnTab2.Click
06. TabControl1.SelectedIndex = 1
07.End Sub
08.
09.Private Sub btnTab3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles btnTab3.Click
10. TabControl1.SelectedIndex = 2
11.End Sub
12.
13.Private Sub btnTab4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles btnTab4.Click
14. TabControl1.SelectedIndex = 3
15.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.
view source
print?
01.Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
02. 'Fecha Actual
03. MsgBox(Now.Date, MsgBoxStyle.OkOnly, "Fecha Actual")
04.End Sub
05.
06.Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button2.Click
07. 'Fecha y Hora Actual
08. MsgBox(Now(), MsgBoxStyle.OkOnly, "Fecha y Hora Actual")
09.End Sub
10.
11.Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button3.Click
12. 'Primer Día del Mes
13. MsgBox(DateSerial(Now.Year, Now.Month, 1), MsgBoxStyle.OkOnly, "Primer Día del Mes")
14.End Sub
15.
16.Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button4.Click
17. 'Ultimo día del Mes
18. 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 Sub
21.
22.Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button5.Click
23. 'Primer Día Hábil
24. Dim primerDiaHabil As Date = DateSerial(Now.Year, Now.Month, 1)
25. Select Case primerDiaHabil.Date.DayOfWeek
26. Case 1 'Domingo
27. primerDiaHabil = DateAdd(DateInterval.Day, 1, primerDiaHabil)
28. Case 6 'Sabado
29. primerDiaHabil = DateAdd(DateInterval.Day, 2, primerDiaHabil)
30. Case Else 'De lunes a Viernes
31. ' no hace nada
32. End Select
33. MsgBox(primerDiaHabil, MsgBoxStyle.OkOnly, "Primer Día Hábil")
34.End Sub
35.
36.Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button6.Click
37. 'Sumar n Dias a Hoy
38. MsgBox(DateAdd(DateInterval.Day, CType(TextBox1.Text, Integer), Now.Date),
MsgBoxStyle.OkOnly, "Sumar n Dias a Hoy")
39.End Sub
40.
41.Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button7.Click
42. 'Sumar n Meses a Hoy
43. 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.
view source
print?
1.DataGridView1.Dock = DockStyle.Fill
2.
3.DataGridView1.Columns.Add("Nombre", "Nombre")
4.DataGridView1.Columns.Add("Apellido", "Apellido")
5.DataGridView1.Columns.Add("Cargo", "Cargo")
6.DataGridView1.Columns.Add("Categoria", "Categoría")
7.DataGridView1.Columns.Add("Sueldo", "Sueldo")
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.
veamos el codigo:
Private Sub DataGridView1_CellValidating(ByVal sender As Object, ByVal e As
System.Windows.Forms.DataGridViewCellValidatingEventArgs) Handles
DataGridView1.CellValidating
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:
Luego vamos al explorador de soluciones y abrimos el código del designer. En nuestro caso Form1.designer.vb
En la ventana de código copiamos todo desde la subrutina InitializeComponent() hasta el final de la clase.
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.
**************************************************************************************
Abra un nuevo proyecto, En Proyectos de Visual Basic seleccione la plantilla Aplicación para Windows.
En la Barra de Herramientas Seleccione Proyecto se le desplegara una lista seleccione Agregar Módulo.
'****************************************************************************************
'* Código realizado por Angel Ruiz © (Venezolano) *
'****************************************************************************************
Function SoloNumeros(ByVal Keyascii As Short) As Short
If InStr("1234567890", Chr(Keyascii)) = 0 Then
SoloNumeros = 0
Else
SoloNumeros = Keyascii
End If
Select Case Keyascii
Case 8
SoloNumeros = Keyascii
Case 13
SoloNumeros = Keyascii
End Select
End Function
------------------------------------------------------------------------------------------------
Ahora valla al Formulario y haga doble click sobre el:
Después de la línea:
Inherits System.Windows.Forms.Form
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
*****************************************************
Fecha y Hora
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
**************************************************************
****************************************************************
*****************************************************
Dim i As Integer
i = InStr(txtPrecio.Text, ".")
If i = 0 Then
If InStr(1, "0123456789." & Chr(8), e.KeyChar) = 0 Then
e.Handled = True
End If
Else
If InStr(1, "0123456789" & Chr(8), e.KeyChar) = 0 Then
e.Handled = True
End If
End If
*******************************************************
***************************************************************************
Validar correo electrónico
Validar correo electrónico
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
Llamado a la funcion la cual puede ser desde el evente leave de el textbox deseado
**********************************************************
*********************************************************************