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.Object, ByVal e As System.Windows.Forms.DataGridViewEditingControlShowingEventArgs) Handles DataGridView1.EditingControlShowing
Try
If e.Control.GetType Is GetType(DataGridViewComboBoxEditingControl) Then
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)
MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
Paso 3: Creamos el evento SelectedValueChange para el ComboBox
Private Sub ComboBoxOnSelectedValueChanged( _
ByVal sender As Object, ByVal 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.Object, ByVal e As System.Windows.Forms.DataGridViewCellCancelEventArgs) Handles 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)
MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
No hay comentarios:
Publicar un comentario