none
Generar un procedimiento al pulsar solo "una vez" la tecla enter en una celda del DataGridView. Visual Studio 2010 RRS feed

  • Pregunta

  • Saludos a todos.

    Como dice la pregunta. En realidad si me suma las cantidades de cada celda y el resultado lo entrega a un control Label.

    Una vez que ingreso la cantidad manualmente en la celda y cuando pulso "DOS VECES" la tecla enter, recién me suma y lo que necesito es que me funcione con UNA sola pulsada de la tecla.

    Este es mi código y gracias de antemano:

        Private Sub dgvPrendaIngreso_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles dgvPrendaIngreso.KeyPress
            If dgvPrendaIngreso.CurrentCell.ColumnIndex = 4 Then 'Colunma Cantidad.
                If e.KeyChar = Chr(13) Then 'Tecla Enter.
                    '
                    Cantidad = 0
                    '
                    'Sumo las prendas.
                    For i = 0 To dgvPrendaIngreso.Rows.Count - 1
                        Cantidad += dgvPrendaIngreso.Rows(i).Cells("Cantidad").Value
                    Next i
                    '
                    lblCantidad.Text = ""
                    lblCantidad.Text = Cantidad
                End If
            End If
        End Sub

    Encontré este código para posicionar el enfoque en la ultima celda, pero no me enfoca el cursor para ingresar datos. Por mas que trate de ingresar un numero (cantidad) no pasa nada. Este código lo tengo en un formulario de buscar:

                                    'Seleccionar última celda de la última columna (columna cantidad)
                                    Dim Ultimafilas As Integer = .dgvPrendaIngreso.Rows.Count - 1
                                    Dim Ultimacolumnas As Integer = .dgvPrendaIngreso.Columns.Count - 1
                                    .dgvPrendaIngreso.CurrentCell.Selected = False 'Quito toda selección.
                                    .dgvPrendaIngreso.Focus()
                                    .dgvPrendaIngreso.Rows(Ultimafilas).Cells(Ultimacolumnas).Selected = True 'Selecciono




    • Editado Miguel_Antonio viernes, 18 de julio de 2014 18:09 Adicionar imagen
    • Cambiado Enrique M. Montejo viernes, 1 de agosto de 2014 10:46 Pregunta relacionada con controles de Windows Forms.
    viernes, 18 de julio de 2014 17:23

Todas las respuestas

  • Primero creo que deberias hacer un DEBUG, y le pones el Punto de Iterrupcion justo donde comienza el metodo y mira que que pasos hace cuando haces Presionas el Botton, o de lo contrario si no encuentras el problema podrias reemplazar el metodo keypress por un key down dandole en la condicion Si se presiona la tecla Enter y a la vez el selectedindex es el ultimo hace todo lo que tiene tu codigo, si no me dejo entender o no funciona con estos metodos, me respondes.


    Long

    sábado, 26 de julio de 2014 17:42