Teclado de erro: Sinal de mais (+) e sinal de menos (-) não aparecem no controle DataGrid com o Visual Basic .NET

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 328590
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Sintomas
No controle DataGrid do Windows Forms, quando você usar o teclado numérico para digitar o sinal de mais (+) ou subtração (-), esses símbolos não aparecem no controle DataGrid.
Resolução
Para resolver o problema, você deve herdar sua própria classe datagrid a classe System.Windows.Forms.DataGrid e, em seguida, substituir as seguintes funções:
  • OnKeyDown
O código a seguir demonstra essa resolução:
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				
Situação
A Microsoft confirmou que este é um bug no Microsoft produtos que estão listados no início deste artigo.
Referências
Para obter informações adicionais em uma versão translation from VPE for Csharp deste artigo, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
329333Teclado de erro: Sinal de mais (+) e sinal de menos (-) não aparecem no controle DataGrid com translation from VPE for Csharp

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 328590 - Última Revisão: 12/07/2015 12:28:49 - Revisão: 4.2

Microsoft .NET Framework 1.1, Microsoft .NET Framework 1.0 Service Pack 2

  • kbnosurvey kbarchive kbmt kbbug kbnetframe100presp3fix kbpending KB328590 KbMtpt
Comentários