Microsoft KB Archive/329333

= FIX: KeyPad PLUS SIGN (+) and MINUS SIGN (-) Do Not Appear in DataGrid Control with C# =

Article ID: 329333

Article Last Modified on 4/8/2003

-

APPLIES TO


 * Microsoft .NET Framework Software Development Kit 1.0 Service Pack 2

-



This article was previously published under Q329333



SYMPTOMS
In the Windows Forms DataGrid control, when you use KeyPad to type PLUS SIGN (+) or MINUS SIGN (-), these symbols do not appear in the DataGrid control.



RESOLUTION
To resolve the problem, you must inherit your own datagrid class from System.Windows.Forms.DataGrid class, and then override the following functions:
 * 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); }   }



STATUS
This bug was corrected in Microsoft .NET Framework SDK 1.1.



MORE INFORMATION
For additional information in a Visual Basic .NET version of this article, click the article number328590 below to view the article328590 in the Microsoft Knowledge Base:

../ BUG: KeyPad PLUS SIGN (+) and MINUS SIGN (-) Do Not Appear in DataGrid Control with Visual Basic .NET

Keywords: kbbug kbfix KB329333

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.