He intentado algo como esto:
Private Sub hfgDato_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles hfgDato.KeyPress
Try
With hfgDato
Select Case .CurrentCell.ColumnIndex
Case 1
If Asc(e.KeyChar) = 13 Then e.Handled =
True:.BeginEdit(True)
End Select
'Asc(e.KeyChar) = Tecla Presionado
'MessageBox.Show(.CurrentCell.ColumnIndex.ToString)
End With
Catch ex As Exception
End Try
End Sub
Alguna Idea ???
> abver si me apoyan con esta tengo un DataGridView en la cual mencesito
> q al presionar [ENTER] no salte a la siguiente fila ...
Si quieres modificar el comportamiento del control DataGridView cuando se
pulsa la tecla Enter, tienes que detectar qu� tecla se ha pulsado y actuar
en consecuencia. Por ejemplo, si deseas que al pulsar Enter el foco pase a
la celda de la derecha, en el procedimiento �ProcessCmdKey� ejecutar�as lo
siguiente:
Protected Overrides Function ProcessCmdKey( _
ByRef msg As System.Windows.Forms.Message, _
ByVal keyData As System.Windows.Forms.Keys) As Boolean
' Si el control DataGridView no tiene el foco, y
' si la celda actual no est� siendo editada,
' abandonamos el procedimiento.
'
If (Not DataGridView1.Focused) AndAlso _
(Not DataGridView1.IsCurrentCellInEditMode) Then _
Return MyBase.ProcessCmdKey(msg, keyData)
' Si la tecla presionada es distinta de la tecla Enter,
' abandonamos el procedimiento.
'
If keyData <> Keys.Return Then _
Return MyBase.ProcessCmdKey(msg, keyData)
' Obtenemos la celda actual
'
Dim cell As DataGridViewCell = DataGridView1.CurrentCell
' �ndice de la columna.
'
Dim columnIndex As Int32 = cell.ColumnIndex
' �ndice de la fila.
'
Dim rowIndex As Int32 = cell.RowIndex
If columnIndex = DataGridView1.Columns.Count - 1 Then
If rowIndex = DataGridView1.Rows.Count - 1 Then
' Seleccionamos la primera columna de la primera fila.
'
cell = DataGridView1.Rows(0).Cells(0)
Else
' Selecionamos la primera columna de la siguiente fila.
'
cell = DataGridView1.Rows(rowIndex + 1).Cells(0)
End If
Else
' Seleccionamos la celda de la derecha de la celda actual.
'
cell = DataGridView1.Rows(rowIndex).Cells(columnIndex + 1)
End If
DataGridView1.CurrentCell = cell
Return True
End Function
Ni que decir tiene que dicho procedimiento lo tendr�s que incluir en el
formulario donde se encuentre incluido el control DataGridView cuyo
comportamiento deseas modificar.
Adapta el ejemplo a tus necesidades.
Un saludo
--
Enrique Mart�nez
[MS MVP - VB]
Nota informativa: La informaci�n contenida en este mensaje, as� como el
c�digo fuente incluido en el mismo, se proporciona �COMO EST��, sin
garant�as de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en pr�ctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.