Código:
En el método AsignarOperarioSeleccionado, saco un MessageBox con el valor de la celda actual. Pues el problema es que me está sacando todavía el dato anterior y no el que acabo de escribir, supongo que porqué todavía no se ha grabado el nuevo dato.Private Const WM_KEYDOWN As Integer = &H100 Protected Overrides Function ProcessCmdKey(ByRef msg As System.Windows.Forms.Message, ByVal keyData As System.Windows.Forms.Keys) As Boolean Select Case msg.Msg Case WM_KEYDOWN Select Case (keyData) Case System.Windows.Forms.Keys.Enter Try AsignarOperarioSeleccionado() Dim newCell As DataGridCell = New DataGridCell(Me.CurrentCell.RowNumber, Me.CurrentCell.ColumnNumber + 1) Me.CurrentCell = newCell Catch End Try Case Else 'MessageBox.Show(keyData.ToString()) End Select End Select Return MyBase.ProcessCmdKey(msg, keyData) End Function Private Sub AsignarOperarioSeleccionado() Dim NombreOperario As String = Me(Me.CurrentCell.RowNumber, Me.CurrentCell.ColumnNumber) MessageBox.Show(NombreOperario) End Sub
Saben en qué evento debería preguntar por el nuevo valor? o mejor aún, saben si desde este mismo evento, puedo recuperar el texto actual escrito en la celda, aunque todavía no esté grabado en el datagrid?
Imagino que donde estoy escribiendo, aunque parezca que es una celda del Datagrid, debe ser una especie de textbox, que en algun punto, más tarde, pasará esos datos a la celda del grid realmente... Lo que creo que ocurre es que en el evento que estoy todavía no están pasados los datos... imagino... Espero me puedan orientar un poquito..
Gracias por su ayuda!
Saludos.