Entrar

CORRECÇÃO: Teclado sinal de mais (+) e sinal de menos (-) não aparecem no controle DataGrid com translation from VPE for Csharp

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.

329333
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
The following code demonstrates this resolution:
public class OwnDataGrid : System.Windows.Forms.DataGrid	{		protected override void OnKeyDown(System.Windows.Forms.KeyEventArgs ke)		{			switch(ke.KeyCode)			{				case Keys.Add :					ke = new KeyEventArgs(ke.Modifiers|Keys.Oemplus);					break;				case Keys.Subtract :					ke = new KeyEventArgs(ke.Modifiers|Keys.OemMinus);					break;			}			base.OnKeyDown(ke);			base.ProcessGridKey(ke);		}		protected override bool ProcessDialogKey(System.Windows.Forms.Keys keyData)		{			switch(keyData)			{																				  				case Keys.Subtract :					return base.ProcessDialogKey(Keys.OemMinus);				case Keys.Add :					return base.ProcessDialogKey(Keys.Oemplus);				default :					return base.ProcessDialogKey(keyData);			}		}				protected override bool ProcessKeyPreview(ref System.Windows.Forms.Message m)		{			int WM_KEYDOWN = 0x100;			if(m.Msg == WM_KEYDOWN) 			{				KeyEventArgs ke = new KeyEventArgs((Keys)m.WParam.ToInt32() | ModifierKeys);				switch(ke.KeyCode)				{					case Keys.Add :						ke = new KeyEventArgs(Keys.Oemplus | ModifierKeys);						break;					case Keys.Subtract :						ke = new KeyEventArgs(Keys.OemMinus | ModifierKeys);						break;				}				return base.ProcessGridKey(ke);			}			return base.ProcessKeyPreview(ref m);		}	}				
Situação
Esse bug foi corrigido no Microsoft .NET Framework 1.1 SDK.
Mais Informações
Para obter informações adicionais em um Visual Basic .NET versão deste artigo, clique no number328590 de artigo abaixo para exibir o article328590 na Base de dados de Conhecimento da Microsoft:
Teclado de erro: Sinal de mais (+) e sinal de menos (-) não aparecem no controle DataGrid com o Visual Basic .NET

Aviso: Este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 329333 - Última Revisão: 10/26/2013 17:36:30 - Revisão: 2.0

  • Microsoft .NET Framework Software Development Kit 1.0 Service Pack 2
  • kbnosurvey kbarchive kbmt kbbug kbfix KB329333 KbMtpt
Comentários