<i id='ET2uA'><tr id='ET2uA'><dt id='ET2uA'><q id='ET2uA'><span id='ET2uA'><b id='ET2uA'><form id='ET2uA'><ins id='ET2uA'></ins><ul id='ET2uA'></ul><sub id='ET2uA'></sub></form><legend id='ET2uA'></legend><bdo id='ET2uA'><pre id='ET2uA'><center id='ET2uA'></center></pre></bdo></b><th id='ET2uA'></th></span></q></dt></tr></i><div id='ET2uA'><tfoot id='ET2uA'></tfoot><dl id='ET2uA'><fieldset id='ET2uA'></fieldset></dl></div>

<small id='ET2uA'></small><noframes id='ET2uA'>

    <bdo id='ET2uA'></bdo><ul id='ET2uA'></ul>
    1. <tfoot id='ET2uA'></tfoot>

        <legend id='ET2uA'><style id='ET2uA'><dir id='ET2uA'><q id='ET2uA'></q></dir></style></legend>
      1. 获取 Control.KeyDown 上的字符?

        Get the char on Control.KeyDown?(获取 Control.KeyDown 上的字符?)
        1. <tfoot id='eDUrC'></tfoot>
              <tbody id='eDUrC'></tbody>
            <legend id='eDUrC'><style id='eDUrC'><dir id='eDUrC'><q id='eDUrC'></q></dir></style></legend>

            <small id='eDUrC'></small><noframes id='eDUrC'>

          • <i id='eDUrC'><tr id='eDUrC'><dt id='eDUrC'><q id='eDUrC'><span id='eDUrC'><b id='eDUrC'><form id='eDUrC'><ins id='eDUrC'></ins><ul id='eDUrC'></ul><sub id='eDUrC'></sub></form><legend id='eDUrC'></legend><bdo id='eDUrC'><pre id='eDUrC'><center id='eDUrC'></center></pre></bdo></b><th id='eDUrC'></th></span></q></dt></tr></i><div id='eDUrC'><tfoot id='eDUrC'></tfoot><dl id='eDUrC'><fieldset id='eDUrC'></fieldset></dl></div>

                  <bdo id='eDUrC'></bdo><ul id='eDUrC'></ul>
                  本文介绍了获取 Control.KeyDown 上的字符?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  限时送ChatGPT账号..

                  在处理 Control.OnKeyPress 事件时,有一个 KeyPressEventArgs 包含一个 KeyChar.

                  When handling Control.OnKeyPress event, there is a KeyPressEventArgs that contains a KeyChar.

                  出于可用性原因,我需要完全相同的 KeyChar 但在处理 OnKeyDown 事件时.

                  For usability reasons I need exactly the same KeyChar but when handling OnKeyDown event.

                  KeyEventArgs 不包含任何与字符相关的数据.我的意思是,如果在有或没有 Shift 的情况下按下 A 键,它不会影响 KeyCodeKeyData键值.使用另一种语言时也是如此,我仍然得到大写的英文值.

                  The KeyEventArgs does not contains any char related data. I mean, if press the A key with or without Shift its not affecting the KeyCode, KeyData or KeyValue. The same when using another language, i still getting capital english values.

                  如何在KeyDown事件中获取KeyPressEventArgs.KeyChar?

                  谢谢.

                  推荐答案

                  转换它.这是将A"转换为a"的简单函数.它只转换 [A-Z] 集合中的大写字符.值 32 是 'A' 和 'a' 之间的差异.当然您可以将其扩展到您的要求,或者在此处询问功能.

                  Convert it. Here is simple function for converting 'A' to 'a'. It converts only capital chars from [A-Z] set. The value 32 is diff between 'A' and 'a'.. Sure you can extend it to your requirements, or ask for feature here.

                  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 控制方法:

                  if you need it to works with your current culture you should override ProcessKeyMessage Control method:

                  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 );
                  }
                  

                  希望对您有所帮助.

                  这篇关于获取 Control.KeyDown 上的字符?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

                  相关文档推荐

                  Force JsonConvert.SerializeXmlNode to serialize node value as an Integer or a Boolean(强制 JsonConvert.SerializeXmlNode 将节点值序列化为整数或布尔值)
                  Using JSON to Serialize/Deserialize TimeSpan(使用 JSON 序列化/反序列化 TimeSpan)
                  Could not determine JSON object type for type quot;Classquot;(无法确定类型“Class的 JSON 对象类型.)
                  How to deserialize a JSONP response (preferably with JsonTextReader and not a string)?(如何反序列化 JSONP 响应(最好使用 JsonTextReader 而不是字符串)?)
                  how to de-serialize JSON data in which Timestamp it-self contains fields?(如何反序列化时间戳本身包含字段的JSON数据?)
                  JSON.Net custom contract serialization and Collections(JSON.Net 自定义合约序列化和集合)

                    <i id='3THhR'><tr id='3THhR'><dt id='3THhR'><q id='3THhR'><span id='3THhR'><b id='3THhR'><form id='3THhR'><ins id='3THhR'></ins><ul id='3THhR'></ul><sub id='3THhR'></sub></form><legend id='3THhR'></legend><bdo id='3THhR'><pre id='3THhR'><center id='3THhR'></center></pre></bdo></b><th id='3THhR'></th></span></q></dt></tr></i><div id='3THhR'><tfoot id='3THhR'></tfoot><dl id='3THhR'><fieldset id='3THhR'></fieldset></dl></div>

                    <small id='3THhR'></small><noframes id='3THhR'>

                    <legend id='3THhR'><style id='3THhR'><dir id='3THhR'><q id='3THhR'></q></dir></style></legend>
                    <tfoot id='3THhR'></tfoot>
                          • <bdo id='3THhR'></bdo><ul id='3THhR'></ul>
                              <tbody id='3THhR'></tbody>