Visual Basic.NET - Problema con eventos CellClick

   
Vista:

Problema con eventos CellClick

Publicado por BioK (9 intervenciones) el 17/08/2009 16:48:40
Hola gente estoy teniendo un problema con el manejo de los eventos. Concretamente cuando hago click en el un datagridview en el evento cellClick tengo un codigo que modifica unos datos en el datagridView el problema es que cuando hago click en el Header de cualquier columna tambien me lanza el evento cellClick, algo que no deseo que sucesda. trate de solucionarlo con el evento datagridview1__ColumnHeaderMouseClick pero ese evento se lanza despues del datagridview1_cellClick. Alguna idea?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problema con eventos CellClick

Publicado por BioK (9 intervenciones) el 17/08/2009 17:43:56
Ya lo solucione! Les dejo la solución por si alguno le sirve...
Usando la funcion HitTest del DataGridView en el evento mouseclick nos fijamos si el click se hizo en el Header o en una fila del DataGridView, de la sieguiente manera

Private Sub dataGridView1_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles dgvPadron.MouseClick

'verifica que no se este haciendo click en el Header de la columna
If (Me.dataGridView1.HitTest(e.X, e.Y).RowIndex >= 0) Then

'Tratamos la fila
End If

End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con eventos CellClick

Publicado por Damian (824 intervenciones) el 17/08/2009 17:49:51
Te paso mi codigo que tengo dentro del evento CellClick() del DataGridView, capaz te sirva. Debes cambiarlo segun a las columnas que tengas y a las que se puedan editar, tambien es muy importante el tema de "e.RowIndex <> -1". Por ultimo debes saber que "DGMat" es el nombre del DataGridView. Saludos

Try
If DGMat.Columns(e.ColumnIndex).Name = "Metros" Then
If e.RowIndex <> -1 Then
DGMat.Item(3, e.RowIndex).ToolTipText = "Click aqui para ingresar cantidad a hacer en " & _
Conv.Substring(1) & "." & vbCrLf & "Luego presione la tecla Enter para calcular."
End If
ElseIf DGMat.Item(1, e.RowIndex).Value.ToString.Substring(0, 9) = "Hidrofugo" Then
If e.RowIndex <> -1 Then
DGMat.Item(2, e.RowIndex).ToolTipText = "Click aqui para ingresar cantidad en Kg." & _
vbCrLf & "Luego presione la tecla Enter."
End If
End If
Catch ex As ArgumentOutOfRangeException

End Try
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar