zoukankan      html  css  js  c++  java
  • 更人性化地控制用户输入(1 of n)

    通过设置限制"全角"输入。

    几年前,我在net 1.0上做一个项目,交付之后客户总是说模糊搜索出来的数据不准确。翻看代码,没问题!看看日志,也没问题!运行测试,没报错。最后只好跑到客户那里看个究竟,一天输入的数千份单据中如果按目的地去查是总数是10,如果按照操作员(一个目的地由只由一个操作员录入)去查,总数却是35,实际上应该是35。天啊是什么回事?查了下数据库,原来是中文输入法惹的祸。目的地的正确地址是"H.K. AirPort",数据库却出现了大量的"H。K。AirPort"。由于那时经验不足,这个问题通过编程序去解决的,自动将字符串里的标点符号去掉或换成半角符号。代码写了一大段,效率却很差,很不爽。没过几天,我在MSDN上得到了这个解决方法

    现在我向大家推荐这个方法:设置Control的属性ImeMode,指定这个值可以控制输入法编辑器 (IME) 的状态。

    例如,在一个窗体里,有两个TextBox,第一个TextBox(name="cnTextBox",TabIndex=0)输入的要求输入中文名,第二个TextBox(name="enTextBox" ,TabIndex=1)要求输入英文。按照用户的习惯,输入完cnTextBox,焦点就切换到 enTextBox,如果用户不切换输入法状态,就很有可能在enTextBox输入的是全角字符;而且用户频繁切换输入法就不能满足快速录入的要求。

    那么,我们可以这样设定属性:

    cnTextBox. ImeMode= ImeMode. On;
    enTextBox. ImeMode= ImeMode .Disable;

    测试一下,无论输入法是什么状态,只要焦点到enTextBox,输入法都会停止工作;焦点离开enTextBox,输入法的又恢复到切入前的状态了。

    ImeMode还有多个取值,各有不同的用处(引用MSDN):

    public enum ImeMode
    {
        Inherit,           //继承父控件的 IME 模式。
        NoControl,      //无(默认)。
        On,                // IME 已打开。此值指示 IME 已打开,可以输入中文或日语特定的字符。此值仅对日语、简体中文和繁体中文 IME 有效。
        Off,                // IME 已关闭。此模式指示 IME 已关闭,这意味着该对象的行为方式与英语输入模式相同。此值仅对日语、简体中文和繁体中文 IME 有效。
        Disable,          // IME 被禁用。如果使用此值,则用户无法从键盘打开 IME,而且 IME 浮动窗口处于隐藏状态。
        Hiragana,        // 平假名 DBC。此值仅对日语 IME 有效。
        Katakana,       // 片假名 DBC。此值仅对日语 IME 有效。
        KatakanaHalf,  // 片假名 SBC。此值仅对日语 IME 有效。
        AlphaFull,        // 字母数字双字节字符。此值仅对朝鲜语和日语 IME 有效。
        Alpha,            // 字母数字单字节字符 (SBC)。此值仅对朝鲜语和日语 IME 有效。
        HangulFull,      // 朝鲜文 DBC。此值仅对朝鲜语 IME 有效。
        Hangul,          // 朝鲜文 SBC。此值仅对朝鲜语 IME 有效。
        Close,
        OnHalf
    }

  • 相关阅读:
    使用jquery获取url以及jquery获取url参数的方法(转)
    Css3 选择器
    取出表A中第31到第40记录
    C#统计给定的文本中字符出现的次数,使用循环和递归两种方法
    Selenium 的页面加载以及几种等待的问题
    Selenium定位策略
    为什么一个java源文件中只能有一个public类
    Eclipse在线安装插件进度缓慢问题
    2.6.2 XML配置:使用testNG进行并发多浏览器测试
    ie11 selenium 报错org.openqa.selenium.NoSuchWindowException: Unable to get browser 处理方法
  • 原文地址:https://www.cnblogs.com/cgzwwy/p/1282402.html
Copyright © 2011-2022 走看看