设置文本框只能输入数字型字符串

#region  设置文本框只能输入数字型字符串
        /// <summary>
        /// 文本框只能输入数字型和单精度型的字符串.
        /// </summary>
        /// <param name="e">KeyPressEventArgs类</param>
        /// <param name="s">文本框的字符串</param>
        /// <param name="n">标识,判断是数字型还是单精度型</param>
        public void Estimate_Key(KeyPressEventArgs e,string s,int n)
        {
            if (n==0)   //只能输入整型
                if (!(e.KeyChar <= '9' && e.KeyChar >= '0') && e.KeyChar != '\r' && e.KeyChar != '\b')
                {
                    e.Handled = true;   //处理KeyPress事件
                }
            if (n == 1) //可以输入整型或单精度型
            {
                if ((!(e.KeyChar <= '9' && e.KeyChar >= '0')) && e.KeyChar != '.' && e.KeyChar != '\r' && e.KeyChar != '\b')
                {
                    e.Handled = true;
                }
                else
                {
                    if (e.KeyChar == '.')   //如果输入“.”
                        if (s == "")    //当前文本框为空
                            e.Handled = true;   //处理KeyPress事件
                        else
                        {
                            if (s.Length > 0)   //当文本框不为空时
                            {
                                if (s.IndexOf(".") > -1)    //查找是否已输入过“.”
                                    e.Handled = true;   //处理KeyPress事件
                            }
                        }
                }
            }
        }
        #endregion

用法:放在你的textbox的keypress事件里面:

C# code
private void textBox1_KeyPress(object sender, KeyPressEventArgs e) { Estimate_Key(e,textBox1.Text,1);//1表示可以输入整数和浮点数,0表示只能输入整数 }


 

posted @ 2009-11-18 19:14  Blue Sky ......  阅读(523)  评论(0编辑  收藏  举报