Hola amigos, tengo una grilla en la cual al ingresar el Nro del personal, compruebo que no haya ingresado ya anteriormente ese Nro de personal con el evento _CellValueChanged, pasa que en caso que encuentre uno igual, este deberia seleccionarme la fila
en donde aparece por primera vez ese Nro de personal, pero no me sale, y espero que puedan ayudarme a resolver este inconveniente
Private Sub dgv_CellValueChanged(sender As Object, e As DataGridViewCellEventArgs) Handles dgv.CellValueChanged
If e.RowIndex >= 0 And e.ColumnIndex < 3 Then
Dim x As Int32
Dim row As capDataSet.cap_datospersonalesRow
If Not IsNumeric(dgv.Rows(e.RowIndex).Cells("id_personal").Value) Then
dgv.Rows(e.RowIndex).Cells("id_personal").Value = ""
dgv.Rows(e.RowIndex).Cells("nombre_personal").Value = ""
dgv.Rows(e.RowIndex).Cells("cua").Value = ""
Exit Sub
ElseIf Not dgv.Rows(e.RowIndex).Cells("id_personal").Value < 10 Then
row = CapDataSet.cap_datospersonales.FindByidpersonal(dgv.Rows(e.RowIndex).Cells("id_personal").Value)
If Not IsNothing(row) Then
If arrayPersonal.Contains(CInt(dgv.Rows(e.RowIndex).Cells("id_personal").Value)) = False Then
If row.IsunidadasigNull Or row.IsnombrecortoNull Then
dgv.Rows(e.RowIndex).Cells("peligrosidad").Value = 0
dgv.Rows(e.RowIndex).Cells("ayuda_alimenticia").Value = 0
dgv.Rows(e.RowIndex).Cells("viatico_doble").Value = 0
dgv.Rows(e.RowIndex).Cells("nombre_personal").Value = ""
dgv.Rows(e.RowIndex).Cells("cua").Value = ""
Exit Sub
End If
dgv.Rows(e.RowIndex).Cells("nombre_personal").Value = row.nombrecorto
dgv.Rows(e.RowIndex).Cells("cua").Value = row.unidadasig
If arrayPersonal.Contains(CInt(dgv.Rows(e.RowIndex).Cells("id_personal").Value)) = False Then
arrayPersonal.Add(CInt(dgv.Rows(e.RowIndex).Cells("id_personal").Value))
End If
Else
MsgBox("Ya se registró al mismo funcionario dentro de la planilla. Favor verificar la planilla", MsgBoxStyle.OkOnly, Title:="Atención Registro duplicado")
Dim personal As Integer = CInt(dgv.Rows(e.RowIndex).Cells("id_personal").Value)
x = arrayPersonal.IndexOf(personal)
'dgv.Rows(e.RowIndex).Selected = True
dgv.Rows(x).Selected = True
'Aqui deberia de seleccionar la fila que deseo
Exit Sub
End If
Else
dgv.Rows(e.RowIndex).Cells("peligrosidad").Value = 0
dgv.Rows(e.RowIndex).Cells("ayuda_alimenticia").Value = 0
dgv.Rows(e.RowIndex).Cells("viatico_doble").Value = 0
dgv.Rows(e.RowIndex).Cells("nombre_personal").Value = ""
dgv.Rows(e.RowIndex).Cells("cua").Value = ""
Exit Sub
End If
Else
dgv.Rows(e.RowIndex).Cells("nombre_personal").Value = ""
dgv.Rows(e.RowIndex).Cells("cua").Value = ""
Exit Sub
End If
Else
If e.RowIndex >= 0 And e.ColumnIndex >= 3 Then
If Not IsNumeric(dgv.Rows(e.RowIndex).Cells("ayuda_alimenticia").Value) Then
dgv.Rows(e.RowIndex).Cells("ayuda_alimenticia").Value = 0
ElseIf ((dgv.Rows(e.RowIndex).Cells("ayuda_alimenticia").Value < 0) Or (dgv.CurrentRow.Cells("ayuda_alimenticia").Value > 45)) Then
dgv.Rows(e.RowIndex).Cells("ayuda_alimenticia").Value = 0
End If
If Not IsNumeric(dgv.Rows(e.RowIndex).Cells("peligrosidad").Value) Then
dgv.Rows(e.RowIndex).Cells("peligrosidad").Value = 0
ElseIf ((dgv.Rows(e.RowIndex).Cells("peligrosidad").Value < 0) Or (dgv.Rows(e.RowIndex).Cells("peligrosidad").Value > 30)) Then
dgv.Rows(e.RowIndex).Cells("peligrosidad").Value = 0
End If
If Not IsNumeric(dgv.Rows(e.RowIndex).Cells("viatico_doble").Value) Then
dgv.Rows(e.RowIndex).Cells("viatico_doble").Value = 0
ElseIf ((dgv.Rows(e.RowIndex).Cells("viatico_doble").Value < 0) Or (dgv.Rows(e.RowIndex).Cells("viatico_doble").Value > 45)) Then
dgv.Rows(e.RowIndex).Cells("viatico_doble").Value = 0
End If
End If
End If
End Sub
gracias