none
SUPPRESSKEYPRESS NO FUNCIONA EN UNA CLASE RRS feed

  • Pregunta

  • Estimados señores:

    Tengo creada la siguiente clase:

    Imports System.Windows.Forms
    Imports System.Drawing

    Public Class MiDataGridView
        Inherits DataGridView

        Public Sub New()
            MyBase.AllowUserToAddRows = False
            MyBase.AllowUserToDeleteRows = False
            MyBase.BorderStyle = Windows.Forms.BorderStyle.Fixed3D
            MyBase.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill
            MyBase.ColumnHeadersVisible = False
            MyBase.MultiSelect = False
            MyBase.ReadOnly = True
            MyBase.RowHeadersVisible = False

            MyBase.RowsDefaultCellStyle.BackColor = SystemColors.Window
            MyBase.AlternatingRowsDefaultCellStyle.BackColor = SystemColors.ControlLight
        End Sub

        Protected Overrides Sub OnKeyDown(ByVal e As System.Windows.Forms.KeyEventArgs)
            MyBase.OnKeyDown(e)

            If e.KeyCode = Keys.Enter Or e.KeyCode = Keys.Return Then
                e.SuppressKeyPress = True   'Para evitar que al pulsar intro antes de ir al siguiente control del foco se vaya a la siguiente fila.
            End If
        End Sub
    End Class

    Mi problema es que la propiedad SuppressKeyPress que he introducido en el evento OnKeyDown no funciona cuando ejecuto el formulario que contiene este DataGridView, Sin embargo, si la llamo desde fuera de la clase en el evento KeyDown funciona perfectamente. ¿Alguien podría decirme el por qué?

    Muchas gracias.

    viernes, 23 de mayo de 2014 22:33