Visual Basic.NET - ENTER Y DESPLAZAMIENTO EN DATAGRIDVIEW

   
Vista:

ENTER Y DESPLAZAMIENTO EN DATAGRIDVIEW

Publicado por ANALY Z.O. (2 intervenciones) el 15/01/2009 09:34:20
hola:
necesito que en DATAGRIDVIEW al dar enter en la 1º fila y celda busque un codigo en la base de dato, de encontrarlo se despliegue en la 2º y 3º celda el producto y el precio y el focus se ubique en la 4º celda para digitar la cantidad y al volver a dar enter se muestre en la 5º celda el precio total y el focus se vaya a la 2º fila y 1º celda. y asi sucesivamente.
he probado con los siguientes eventos

'me dice que tengo error en (e.RowIndex)
Private Sub DataGridView1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles DataGridView1.KeyPress

End Sub

'en este evento no me manda error pero solo consigo buscar y cargar el datagrid moviendo el cursor.
Private Sub DataGridView1_CellLeave(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellLeave

End Sub

'el envento que estoy trabajando el codigo en estos momentos es el siguiente y me sigue mandando error (e.RowIndex), pero cuando cambio por row(0) trabaja con el enter pero solo en la 1º fila , me da la impresion que necesito aplicar un FOR para las siguientes filas. espero su ayuda

Public Class Form1
Dim Conexion As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:Documents and SettingsAdministradorMis documentosBEBE.mdb"

Private Sub DataGridView1_CellStateChanged(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellStateChangedEventArgs) Handles DataGridView1.CellStateChanged
Dim rw As Integer = Me.DataGridView1.CurrentRow.Index
Dim clave As Integer = Me.DataGridView1.Rows(e.RowIndex).Cells(0).Value ' clave es el nombre de la celda donde captura el valor
Dim dt As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapter("Select * from PRODUCTO where codigo =" & clave & "", Conexion)
Dim ds As DataSet = New DataSet()
dt.Fill(ds, "PRODUCTO")
'Dim i As Integer = ds.Tables(0).Rows.Count
If ds.Tables(0).Rows.Count <> 0 Then
If ds.Tables(0).Rows(0)(0).ToString <> Nothing And ds.Tables(0).Rows(0)(0).ToString <> "" Then
Me.DataGridView1.Rows(rw).Cells(1).Value = ds.Tables(0).Rows(0)(1) ' Cells(1) es donde aparece la descripción
Me.DataGridView1.Rows(rw).Cells(2).Value = ds.Tables(0).Rows(0)(2) ' Cells(2) es donde aparece la descripción
'Me.DataGridView1.Rows(rw).Cells(3).Value = ds.Tables(0).Rows(0)(3) ' Cells(3) es donde aparece la descripción
Else
' Me.DataGridView1.Rows(rw).Cells(0).Value = ""
Me.DataGridView1.Rows(rw).Cells(0).Value = ""
End If
End If
End Sub

End Class
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