zoukankan      html  css  js  c++  java
  • WinCE下数字键盘

            最近正在开发一个移动数据采集系统,其中涉及到了数据的录入功能,先开始直接调用的是系统自带的拼音键盘,如下图所示。

     

          

             在实际的试运行过程中,用户觉得单纯录入数字,用这个键盘太小,而且容易输错数据,于是本着客户就是上帝的精神,自己写了个数据键盘,效果图如下。

        

              这个键盘实现起来其实很简单,就是上学时很多人都做过的winform计算器的阉割版,现在为了写这篇博客,我也就羞射的把它拿出来了害羞

            这篇文章主要介绍的不是数字键盘怎么实现,而是在WinCE中如何调用此键盘,这就要用到委托和事件了。

            当textbox获得焦点,也就是触发GotFocus事件后。


    private int keydownCount = 0;//记录获得焦点的次数
    
    private void UCtxb_GotFocus(object sender, EventArgs e)
            {
                keydownCount++;
                if (keydownCount % 2 == 1)//当为第一次获取焦点时
                {
                    Keybord kb = new Keybord(this.UClbl.Text);
                    kb.changed += new Keybord.KeyboardHandle(kb_changed);
                    kb.ShowDialog();
                }
                else
                {
                    this.btnPic.Focus();//由于使用委托和事件,当从数字键盘赋值到textbox中时,textbox再次获得了焦点
                    //会再一次触发GotFocus事件,所以赋值完成后需要将焦点转移
               } 
    }


    //在数字键盘中,定义委托事件。
     public delegate void KeyboardHandle(string s);
    public event KeyboardHandle changed;
    
    //实现数据的同步
    private void txtNum_TextChanged(object sender, EventArgs e)
            {
                changed(txtNum.Text);
            }
    
    private void btnEnter_Click(object sender, EventArgs e)
            {
                this.Close();
            }


              如果对委托和事件不太熟悉,可以看下此博文



  • 相关阅读:
    博客园项目
    social-auth-app-django模块
    win10安装软件被阻止后
    expdp和impdp的用法
    EXPDP
    oracle常用的数据迁移方法
    使用spool导出数据
    无法创建spool文件
    sqlldr导入数据
    cmd 登录oracle
  • 原文地址:https://www.cnblogs.com/QiuJL/p/4524207.html
Copyright © 2011-2022 走看看