日期:2014-05-18  浏览次数:20711 次

高分征集C#数字型文本框控件的代码
设计并实现Windows数字型文本框控件,方便用户的录入操作。要求该控件从

System.Windows.Forms.TextBox继承,扩展的主要属性和功能包括:支持定义最大整数位长度、小数精

度、是否允许负值、是否是百分数、是否允许粘贴等属性;并根据这些定义控制用户的录入,保证用户快

速有效的录入以及获得正确的数值;

设计者可以按自己的设计方案在实现上述功能的基础上进行扩展;

------解决方案--------------------
我很久以前的一个blog有基本的原理;
http://blog.csdn.net/FlashElf/archive/2004/10/31/161024.aspx

看看吧,不是很难,改改就可以实现你的需求了
简单的东西不要到处找控件了
沦为【控件帮】对程序员来说没什么好处;
不难的东西多动手;
------解决方案--------------------
VS2005的Numeric控件不是有了码?
想重新开发 直接继承开发
------解决方案--------------------
先看看.net中有什么可以继承的
------解决方案--------------------
判断正数,负数的函数 具体限制思路相同
using System.Text.RegularExpressions; 
public bool shuzi(string aa)
{
if(aa!=null && Regex.IsMatch(aa,@"^[-]?\d+[.]?\d*$") && aa[aa.Length-1].ToString()!="." && aa.IndexOf(".")==-1 && aa.IndexOf("-")==-1) 
return true; 
else 
return false;

}
public bool fushuzi(string aa)
{
if(aa!=null && Regex.IsMatch(aa,@"^[-]?\d+[.]?\d*$") && aa[aa.Length-1].ToString()!="." && aa.IndexOf(".")==-1) 
return true; 
else 
return false;

}

private void button1_Click(object sender, System.EventArgs e)
{

if (Convert.ToDouble(this.textBox1.Text.Trim())<0.1|| Convert.ToDouble(this.textBox1.Text.Trim())>3){MessageBox.Show("输入值超出范围!","提示!"); textBox1.Text="";return;}
// if(this.textBox1.Text.Trim().Length>3){MessageBox.Show("请输入正确信息!","提示!");textBox1.Text=""; return;}

if (shuzi(textBox1.Text.Trim())){ MessageBox.Show("温度上送范围应输入整数字,请重新输入!","提示!"); textBox1.Text="";return;}
// if (Convert.ToInt32(this.textBox1.Text.Trim())<-30|| Convert.ToInt32(this.textBox1.Text.Trim())>0){MessageBox.Show("输入值超出范围!","提示!"); textBox1.Text="";return;}



}