当前位置: 代码迷 >> WinCE >> WinCE上数字键盘
  详细解决方案

WinCE上数字键盘

热度:87   发布时间:2016-04-28 12:32:22.0
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();        }


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



  相关解决方案