viernes, 8 de marzo de 2013

Validar combobox de un datagridview

Este ejemplo permite validar un ComboBox del gridview, de esta manera podremos controlar el evento SelectedValueChanged del ComboBox.

Código fuente


Paso 1: Declaramos una variable de tipo ComboBox

Dim m_comboBox As ComboBox

Paso 2: Validamos el evento EditingControlShowing del gridview

Private Sub DataGridView1_EditingControlShowing(ByVal sender As System.ObjectByVal e As System.Windows.Forms.DataGridViewEditingControlShowingEventArgsHandles DataGridView1.EditingControlShowing
Try
       If e.Control.GetType Is GetType(DataGridViewComboBoxEditingControlThen
            m_comboBox = DirectCast(e.Control, ComboBox)
           ' Instalamos el controlador para el evento SelectedValueChanged
            AddHandler m_comboBox.SelectedValueChanged, _
            AddressOf ComboBoxOnSelectedValueChanged
        End If
        Catch ex As Exception
                                    MessageBox.Show(ex.Message, "vb.net", _
                                     MessageBoxButtons.OK, MessageBoxIcon.Error)
        End Try
End Sub

Paso 3: Creamos el evento SelectedValueChange para el ComboBox 

Private Sub ComboBoxOnSelectedValueChanged( _
            ByVal sender As ObjectByVal e As EventArgs)
      'Referenciamos el control ComboBox que ha
       ' desencadenado el evento.
        Dim cb As ComboBox = DirectCast(sender, ComboBox)
       ' Obtenemos el valor de su propiedad ValueMember
        '
        Dim value As Object = cb.SelectedValue
        If value IsNot DBNull.Value Then
            MessageBox.Show(CStr(value))
        End If
End Sub

Paso 4: Validamos el RowValidating del gridview, para poder remover el evento del ComboBox

Private Sub DataGridView1_RowValidating(ByVal sender As System.ObjectByVal e As System.Windows.Forms.DataGridViewCellCancelEventArgsHandles DataGridView1.RowValidating
Try
        If m_comboBox IsNot Nothing Then
            'Desinstalamos el controlador de eventos 
            RemoveHandler m_comboBox.SelectedValueChanged, _
            AddressOf ComboBoxOnSelectedValueChanged
        End If
        Catch ex As Exception
                        MessageBox.Show(ex.Message, "vb.net", _
                        MessageBoxButtons.OK, MessageBoxIcon.Error)
       End Try
End Sub

No hay comentarios:

Publicar un comentario