Foros del Web » Programación para mayores de 30 ;) » .NET »

Capturar valor en textboxGridColumn desde evento ProcessCmdKey

Estas en el tema de Capturar valor en textboxGridColumn desde evento ProcessCmdKey en el foro de .NET en Foros del Web. Bien, respecto al problema que hay para capturar la tecla ENTER, presionada cuando estamos posicionados en una celda de un Datagrid de .NET, me decidí ...
  #1 (permalink)  
Antiguo 21/03/2006, 06:47
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 4 meses
Puntos: 9
Capturar valor en textboxGridColumn desde evento ProcessCmdKey

Bien, respecto al problema que hay para capturar la tecla ENTER, presionada cuando estamos posicionados en una celda de un Datagrid de .NET, me decidí a crear una nueva clase Datagrid y sobreescribir el método ProcessCmdKey, que fue la solución que encontré para ello:
Código:
    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
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.
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.
__________________
..:: moNTeZIon ::..

Última edición por moNTeZIon; 21/03/2006 a las 09:20
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 16:52.