none
Textbox 里面如何区分文字自动填充时的 Enter 还是 文字已经填写完后的Enter RRS feed

  • 问题

  •     我想监听Enter按键来处理一些逻辑,但是当前有个问题是如果输入中文时 输入了zhongguo这个时候会输入法自动匹配上中国,然后按Enter 会将中国输入,但是这时我不想去处理,只有在匹配输入不存在的时候按Enter才想去处理,各路大神有何种解决方案?

    人生就要精彩

    2013年5月31日 8:50

答案

全部回复

  • Hi boypig

    在win8环境下,默认输入法的空格是选择中文,回车则是无视中文。比如说输入zhongguo的时候,按空格可以出现中国这两个字,按回车是出现zhongguo这几个英文。

    另外可以用 Windows.Globalization.Language.CurrentInputMethodLanguageTag 检测当前输入法状态,如果是zh-Hans-CN就代表在使用中文输入法,en-US就是英文输入法。配合Enter事件过滤或许可以达到你想要的效果。


    James He
    MSDN Community Support | Feedback to us
    Develop and promote your apps in Windows Store
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.


    2013年6月3日 2:30
    版主
  • Hi boypig

    在win8环境下,默认输入法的空格是选择中文,回车则是无视中文。比如说输入zhongguo的时候,按空格可以出现中国这两个字,按回车是出现zhongguo这几个英文。

    另外可以用 Windows.Globalization.Language.CurrentInputMethodLanguageTag 检测当前输入法状态,如果是zh-Hans-CN就代表在使用中文输入法,en-US就是英文输入法。配合Enter事件过滤或许可以达到你想要的效果。


    James He
    MSDN Community Support | Feedback to us
    Develop and promote your apps in Windows Store
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.


    Thanks, Jamles,

     不过如果只判定当前是那种语言还是不能满足我的需求, 我写了一个demo, 需求是想按下Enter时表示输入完成, 会把当前输入的内容打印出来,但是这个Enter在输入中文以及类似语言(日语韩语之类的)时,用户按下Enter 可能是为了输入中国对应的zhongguo,而不是说输入结束,有没有什么类似的Api能够判定当前是否有输入的默认匹配列表打开的状态的呢?或者其他方式满足我的需求呢

    此处为我的demo

    人生就要精彩

    2013年6月3日 3:37
  • ?????
    2013年6月3日 5:58
  • 首先,允许 TextBox 输入换行符。然后在 TextChanged 事件中检测换行符。如果有换行符,将换行符去除,并判定为输入了 Enter,否则就是输入法输入的内容。

    Shi Xin

    Picture是一款免费图片浏览器,完全支持触摸操作,赶快来下载吧。

    我在想可以用一个变量记录上一次按回车键后TextBox的内容

    然后对比本次和上次的内容,如果一样的话说明本次回车就是你需要触发的事件

    个人感觉这个办法可行


    James He
    MSDN Community Support | Feedback to us
    Develop and promote your apps in Windows Store
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.


    2013年6月7日 3:05
    版主