软键盘开发

原创 2011年01月25日 12:10:00

在mobile开发中,用户的输入是有一定困难的,所以,提供数字小键盘,可以极大方便用户的输入

我开发了一个简单的小键盘应用,界面很简单,如图:


图片

 

我选择的是把它做为一个用户控件,应用单键模式,使整个页面或整个程序中只有一个这样的小键盘实例存在,并提供与它关联的输入控件TextBox公共属性,及实现清空,关闭等按钮动作,当然,可以加输入的验证部分,这里我没有用到,把它注释掉了,相关代码如下,我把该用户控件的所有代码都复制过来了.

view plaincopy to clipboardprint?
public partial class UCNumeralKeyboard : UserControl  
{  
   #region 变量   
   //唯一的实例,私有变量   
   private static UCNumeralKeyboard numeralKeyboard = null;   
   //要在其中输入值的TextBox控件   
   private static TextBox textBox = null;  
   #endregion  
    #region 构造函数   
  private UCNumeralKeyboard()   
    {   
        InitializeComponent();   
    }  
    #endregion  
    #region 获得唯一实例的方法   
    public static UCNumeralKeyboard GetNumeralKeyBoard()   
    {   
        if (numeralKeyboard == null)   
        {   
            numeralKeyboard = new UCNumeralKeyboard();   
        }   
        return numeralKeyboard;   
    }  
    #endregion  

    #region 设置输入控件(属性)   
    public TextBox TB   
    {   
        set  
        {   
           textBox = value;   
        }   
    }  
    #endregion  
    #region 点击各按钮时的动作   
    private void btn1_Click(object sender, EventArgs e)   
    {   
        Button btn = sender as Button;   
        if (btn != null && textBox != null)   
        {  
            #region comment   
            switch (btn.Text)   
            {   
                case "1":   
                case "2":   
                case "3":   
                case "4":   
                case "5":   
                case "6":   
                case "7":   
                case "8":   
                case "9":   
                case "0":   
                    int indexMinus = textBox.Text.IndexOf("-");   
                    int indexBegin = 0;   
                    int indexDot = textBox.Text.IndexOf(".");   
                 if (indexDot < 0)   
                    {   
                        if (textBox.Text.Length == 0 || textBox.Text.Substring(indexBegin, 1) != "0" || indexDot > 0)   
                        {   
                            textBox.Text += btn.Text;   
                      }   
                    }   
                    else   
                    {   
                        indexBegin = 1;   
                       if (textBox.Text.Length == 1 || textBox.Text.Substring(indexBegin, 1) != "0" || indexDot > 0)   
                       {   
                            textBox.Text += btn.Text;   
                      }   
                    }   

                    break;     
               case "-":   
                   if (textBox.Text.IndexOf("-") < 0)   
                   {   
                        textBox.Text = "-" + textBox.Text;   
                    }   
                    else   
                    {   
                        textBox.Text = textBox.Text.Substring(1);   
                    }   
                    break;   
               case ".":   
                   if (textBox.Text.IndexOf(".") < 0)   
                   {   
                        if ((textBox.Text.IndexOf("-") >= 0 && textBox.Text.Length > 1)   
                            || (textBox.Text.IndexOf("-") < 0 && textBox.Text.Length > 0)   
                            )   
                       {   
                           textBox.Text += btn.Text;   
                        }   
                   }   
                   break;        
            }  
            #endregion   
            if (textBox.Text.Trim().Length < textBox.MaxLength)   
            {   
                textBox.Text += btn.Text;   
            }   
        }   
    }  
    #endregion  
    #region 关闭按钮动作   
    private void btnClose_Click(object sender, EventArgs e)   
    {   
        this.Parent.Controls.Remove(this);   
    }  
    #endregion  
    #region 清空关联的TextBox控件   
    private void btnClear_Click(object sender, EventArgs e)   
    {   
        textBox.Text = "";   
    }  
    #endregion  

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

安卓开发软键盘工具类

Qt实战开发-数字软键盘

开发的思路 布局键盘界面 每一个button对应一个槽函数 把输入的字符返回到点击处的文本编辑框开发过程 首先定义功能button,在头文件中定义 QString getText(); ...

触摸屏软键盘开发实例

  • 2009-06-29 20:48
  • 4.98MB
  • 下载

MUI开发APP文本框获得焦点并弹出软键盘

在使用MUI开发APP时,经常需要让文本框获得焦点,并弹出软键盘,方便用户操作。在使用混合模式开发时,这需要调用Native.js方法。 MUI官网展示了调用软键盘的示例:MUI官网示例。 调用软键盘...

Android开发之ListView+EditText-要命的焦点和软键盘问题解决办法:表跟我说什么adjustPan,真心无用~~

公司项目中对其中一个画面的需求: 整个画面有若干行信息表示,画面要可以上下滚动,信息的行数不确定,每一行的内容也不定,但是每一行有大概的框架。   两种解决办法: 第1种:Sc...

安卓开发:监听软键盘的显示与隐藏,并作出其他操作

对于安卓的软键盘的显示隐藏,查了好多资料,得出一个结论,就是Google并没有提供接口来直接判断键盘是否是显示状态。 刚好项目中遇到这个问题,目前解决了,就贡献出来给Androider。 我的思路...

彻底搞定Android开发中软键盘的常见问题

软键盘显示的原理       软件盘的本质是什么?软键盘其实是一个Dialog。        InputMethodService为我们的输入法创建了一个Dialog,并且将该Dialog的Win...

Android开发之ListView+EditText-要命的焦点和软键盘问题解决办法

公司项目中对其中一个画面的需求: 整个画面有若干行信息表示,画面要可以上下滚动,信息的行数不确定,每一行的内容也不定,但是每一行有大概的框架。   两种解决办法: 第1种:ScrollView...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)