Error: Teclado signo más (+) y signo menos (-) no aparecen en el Control DataGrid con Visual Basic .NET

Seleccione idioma Seleccione idioma
Id. de artículo: 328590 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

Síntomas

En el control DataGrid de formularios Windows Forms, al utilizar teclado para escribir el signo más (+) o signo menos (-), estos símbolos no aparecen en el control DataGrid.

Solución

Para resolver el problema, debe heredar su propia clase datagrid clase System.Windows.Forms.DataGrid y, a continuación, reemplace las funciones siguientes:
  • OnKeyDown
El código siguiente muestra esta resolución:
Public Class MyDataGrid
    Inherits System.Windows.Forms.DataGrid

    Protected Overrides Sub OnKeyDown(ByVal ke As System.Windows.Forms.KeyEventArgs)
        Select Case ke.KeyCode
            Case Keys.Add
                ke = New KeyEventArgs(ke.Modifiers Or Keys.Oemplus)
            Case Keys.Subtract
                ke = New KeyEventArgs(ke.Modifiers Or Keys.OemMinus)
        End Select
        MyBase.OnKeyDown(ke)
        MyBase.ProcessGridKey(ke)
    End Sub

    Protected Overrides Function ProcessDialogKey(ByVal keyData As System.Windows.Forms.Keys) As Boolean
        Select Case keyData
            Case Keys.Add
                Return MyBase.ProcessDialogKey(Keys.Oemplus)
            Case Keys.Subtract
                Return MyBase.ProcessDialogKey(Keys.OemMinus)
            Case Else
                Return MyBase.ProcessDialogKey(keyData)
        End Select
    End Function

    Protected Overrides Function ProcessKeyPreview(ByRef m As System.Windows.Forms.Message) As Boolean
        Const WM_KEYDOWN As Integer = &H100
        If m.Msg = WM_KEYDOWN Then
            Dim ke As New KeyEventArgs(CType(m.WParam.ToInt32(), Keys) Or ModifierKeys)
            Select Case ke.KeyCode
                Case Keys.Add
                    ke = New KeyEventArgs(Keys.Oemplus Or ModifierKeys)
                Case Keys.Subtract
                    ke = New KeyEventArgs(Keys.OemMinus Or ModifierKeys)
            End Select
            Return MyBase.ProcessGridKey(ke)
        End If
        Return MyBase.ProcessKeyPreview(m)
    End Function<BR/>
End Class
				

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft enumerados al principio de este artículo.

Referencias

Para obtener información adicional en una versión de C# de este artículo, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
329333Error: Teclado signo más (+) y signo menos (-) no aparecen en el Control DataGrid con C#

Propiedades

Id. de artículo: 328590 - Última revisión: jueves, 22 de febrero de 2007 - Versión: 4.2
La información de este artículo se refiere a:
  • Microsoft .NET Framework 1.1
  • Microsoft .NET Framework 1.0 Service Pack 2
Palabras clave: 
kbmt kbbug kbnetframe100presp3fix kbpending KB328590 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 328590

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com