转换它。这是将“A”转换为“a”的简单函数。它仅转换[AZ]集中的大写字符。值 32 是 'A' 和 'a' 之间的差异。当然您可以将其扩展到您的要求,或者在此处询问功能。
char getChar( KeyEventArgs e )
{
int keyValue = e.KeyValue;
if ( !e.Shift && keyValue >= (int) Keys.A && keyValue <= (int) Keys.Z )
return (char)(keyValue + 32);
return (char) keyValue;
}
如果您需要它与您当前的文化一起使用,您应该覆盖 ProcessKeyMessage Control 方法:
protected override bool ProcessKeyMessage( ref Message m )
{
if ( ( m.Msg == 0x102 ) || ( m.Msg == 0x106 ) ) // this is special - don't remove
{
char c = (char) m.WParam; // here is your char for OnKeyDown event ;)
}
return base.ProcessKeyMessage( ref m );
}
希望它有帮助。