Validar Datagridview
En este ejemplo e trabajado con1 Datagridview
2 botones
VB.NET:
'funcion para verificar si ya se encuentra dijitado el codigo en el dgv Private Sub si_existe_dgv(ByVal e) Dim clave As String Dim nlinea As Integer Select Case e.ColumnIndex Case 0 clave = dgvvalidar.Rows(dgvvalidar.CurrentRow.Index).Cells(0).Value nlinea = dgvvalidar.CurrentRow.Index For i As Integer = 0 To dgvvalidar.Rows.Count - 1 If clave = dgvvalidar.Rows(i).Cells(0).Value And i <> nlinea Then dgvvalidar.Rows(nlinea).Cells(0).Value = "" MsgBox("El codigo digitado ya esta ingresado ", MsgBoxStyle.Information)Exit Sub End If Next End Select End Sub'funcion para especificar tipo de dato ingresado en cell del dgv Private Sub validar_Keypress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyP ressEventArgs) ' obtener indice de la columna Dim columna As Integer = dgvvalidar.CurrentCell.ColumnIndex '' comprobar si la celda en edicin corresponde a la columna 0 ' en la columna 0 solo acepta numeros If columna = 0 Then ' Obtener caracter Dim caracter As Char = e.KeyChar If Not Char.IsNumber(caracter) And (caracter = ChrW(Keys.Back)) = False Then 'Me.Text = e.KeyChar e.KeyChar = Chr(0) End If End If '' comprobar si la celda en edicin corresponde a la columna 2 ' en la columna 2 solo acepta letras If columna = 1 Then Dim caracter As Char = e.KeyChar If Not Char.IsLetter(caracter) And (caracter = ChrW(Keys.Back)) = False Then 'Me.Text = e.KeyChar e.KeyChar = Chr(0) End If End If '' comprobar si la celda en edicin corresponde a la columna 2 ' en la columna 2 solo acepta numeros If columna = 2 Then ' Obtener caracter Dim caracter As Char = e.KeyChar If Not Char.IsNumber(caracter) And (caracter = ChrW(Keys.Back)) = False Then 'Me.Text = e.KeyChar e.KeyChar = Chr(0) End If End If '' comprobar si la celda en edicin corresponde a la columna 3 ' en la columna 3 acepto ademas de numeros un unico "." que es el separador decimal a ' qui If columna = 3 Then Dim caracter As Char = e.KeyChar ' referencia a la celda Dim txt As TextBox = CType(sender, TextBox) ' comprobar si es un nmero con isNumber, si es el backspace, si el caracter ' es el separador decimal, y que no contiene ya el separador If (Char.IsNumber(caracter)) Or _ (caracter = ChrW(Keys.Back)) Or _ (caracter = ".") And _ (txt.Text.Contains(".") = False) Then e.Handled = False Else e.Handled = True End If End If End SubPrivate Sub dgvvalidar_CellEndEdit(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgvvalidar.CellEndEdit si_existe_dgv(e) End Sub Private Sub dgvvalidar_EditingControlShowing(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewEditingControlShowingEventArgs) Handles dgvvalidar.EditingControlShowing ' referencia a la celda Dim validar As TextBox = CType(e.Control, TextBox) ' agregar el controlador de eventos para el KeyPress AddHandler validar.KeyPress, AddressOf validar_Keypress End SubPrivate Sub btadicionar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btadicionar.Click 'se adiciona una fila en el datagridview dgvvalidar.Rows.Add() 'este es para ponerle un color a las filas dgvvalidar.RowsDefaultCellStyle.BackColor = Color.Aquamarine dgvvalidar.AlternatingRowsDefaultCellStyle.BackColor = Color.Bisque End Sub Private Sub btquitar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btquitar.Click 'para quitar la fila seleccionada dgvvalidar.Rows.Remove(dgvvalidar.CurrentRow) End Sub
0 comentarios:
Publicar un comentario