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


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



转载于:https://www.cnblogs.com/QiuJL/archive/2013/01/11/4524207.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值