软键盘开发

原创 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  

 

安卓开发软键盘工具类

  • 2016年04月19日 16:56
  • 1KB
  • 下载

[Phonegap+Sencha Touch] 移动开发24 打包wp8.1的App,运行时输入框聚焦弹出软键盘之后,界面上移而不恢复原位的解决办法

这个现象只出现在phonegap打包sencha touch的wp8.1程序会出现(仅wp8.1,wp8正常),其它js框架我测试了几个(app framework, jquery mobile),好...

安卓开发 自定义Dialog的问题总结之---Title背景为黑问题、edittext无法弹出软键盘

前几天,电脑出现问题,开机不断重启,怎么搞都木有用。于是乎狠下心来重装。那么问题来了,以前的项目呢?日了狗了,项目只备份到7月1号的,接下来只能慢慢写回来吧,之前dialog写得很顺利,白底蓝线黑字。...
  • AC1992
  • AC1992
  • 2015年07月16日 17:42
  • 928

关于安卓app开发中与EditText相关的输入法(软键盘)隐藏问题的解决方案

1.创建安卓项目之后,编写需要用到EditText的布局文件,如下:     xmlns:tools="http://schemas.android.com/tools"     android:i...

iOS开发之软键盘使用小技巧

在iOS开发过程中,有时候需要弹出软键盘进行输入,有时候又需要在某些情况下隐藏软键盘,以提高用户体验。今天有几个关于软键盘的小技巧和大家分享。 (1)只弹出数字键盘        有某些需求中,要求用...

移动端web开发之坑--IOS8下 上传图片点击取消后,弹出了软键盘遮挡输入框

【问题描述】: 点击输入框弹出软键盘–>点击上传图片(input type=file)–>此时键盘收起 弹出上传图片/拍照/取消选项–>点击取消–>选项消失,键盘弹起–>遮挡(如图二)...

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

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

安卓开发--EditText和ScrollView滑动的冲突,以及EditText内容过多导致被软键盘顶上去距离

安卓开发笔记--Edittext和ScrollView嵌套 以及和软键盘距离随着内容变远 在网上搜了一下EditText和ScrollView的滚动冲突,发现几乎所有的解决方案都是触摸EditText...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:软键盘开发
举报原因:
原因补充:

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