sábado, 29 de junio de 2013

Validar Datagridview

Validar Datagridview

En este ejemplo e trabajado  con
1 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 Sub

 Private 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 Sub
 Private 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
Categories:

0 comentarios:

Publicar un comentario