C# 如何实现对TEXTBOX输入的值进行限制
C#如何实现对TEXTBOX输入的值进行限制我在页面上放了90个TEXTBOX,想要达到的效果是——每个TEXTBOX所能接收的值仅为1,2,3,4这四个值也就是某个TE...
C# 如何实现对TEXTBOX输入的值进行限制
我在页面上放了90个TEXTBOX,想要达到的效果是——
每个TEXTBOX所能接收的值仅为1,2,3,4这四个值
也就是某个TEXTBOX的值的范围不在1-4的时候,让重新输入。
(如果能在TEXTBOX失去焦点的时候就进行判断更好)
不知道该怎么实现。希望大家帮帮忙 展开
我在页面上放了90个TEXTBOX,想要达到的效果是——
每个TEXTBOX所能接收的值仅为1,2,3,4这四个值
也就是某个TEXTBOX的值的范围不在1-4的时候,让重新输入。
(如果能在TEXTBOX失去焦点的时候就进行判断更好)
不知道该怎么实现。希望大家帮帮忙 展开
7个回答
展开全部
关键不是回发不回发的问题..
如果用验证控件或者写KeyPress事件,至少要重复90次
我觉得这样的代码会让人笑话的.最好是动态创建TextBox,类似WEB里的自定义控件.
可以单独写一个类做这个事情,类似这样的代码
public class textBoxArray : System.Collections.CollectionBase
{
private readonly System.Windows.Forms.Form HostForm;
//构造函数
public textBoxArray(System.Windows.Forms.Form Host)
{
HostForm = Host;
}
public void addNewTextBox()
{
if (this.Count < 90)
{
//建一个新的textbox实例.
System.Windows.Forms.TextBox aTextBox = new System.Windows.Forms.TextBox();
//将其添加到集合的内部列表
this.List.Add(aTextBox);
//将TextBox添加到由HostForm字段引用的窗体的集合列表中
HostForm.Controls.Add(aTextBox);
//设置初始属性
aTextBox.Left = //根据页面布局,动态实现
aTextBox.Top = //根据页面布局,动态实现
aTextBox.Width = 100;
aTextBox.Height = 21;
aTextBox.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
aTextBox.Tag = this.Count;
}
}
//创建索引
public System.Windows.Forms.TextBox this[int index]
{
get
{
return (System.Windows.Forms.TextBox)this.List[index];
}
}
}
如果用验证控件或者写KeyPress事件,至少要重复90次
我觉得这样的代码会让人笑话的.最好是动态创建TextBox,类似WEB里的自定义控件.
可以单独写一个类做这个事情,类似这样的代码
public class textBoxArray : System.Collections.CollectionBase
{
private readonly System.Windows.Forms.Form HostForm;
//构造函数
public textBoxArray(System.Windows.Forms.Form Host)
{
HostForm = Host;
}
public void addNewTextBox()
{
if (this.Count < 90)
{
//建一个新的textbox实例.
System.Windows.Forms.TextBox aTextBox = new System.Windows.Forms.TextBox();
//将其添加到集合的内部列表
this.List.Add(aTextBox);
//将TextBox添加到由HostForm字段引用的窗体的集合列表中
HostForm.Controls.Add(aTextBox);
//设置初始属性
aTextBox.Left = //根据页面布局,动态实现
aTextBox.Top = //根据页面布局,动态实现
aTextBox.Width = 100;
aTextBox.Height = 21;
aTextBox.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
aTextBox.Tag = this.Count;
}
}
//创建索引
public System.Windows.Forms.TextBox this[int index]
{
get
{
return (System.Windows.Forms.TextBox)this.List[index];
}
}
}
展开全部
WinForm就在KeyPress中处理,输入的值不是1,2,3,4时,就不处理
把所有的TextBox的KeyPress事件都指向下面的方法就行:
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if(e.KeyChar != '1' && e.KeyChar != '2' &&e.KeyChar != '3' &&e.KeyChar != '4')
e.Handled=true;
}
把所有的TextBox的KeyPress事件都指向下面的方法就行:
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if(e.KeyChar != '1' && e.KeyChar != '2' &&e.KeyChar != '3' &&e.KeyChar != '4')
e.Handled=true;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
从标准的textbox里再继承出一个自定义的textbox,在失去焦点的事件里写验证代码。然后在你的应用程序里使用这个自己定义的textbox。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用js验证把!不喜欢用vs自己带的验证控件!
专家回答的那个数据会回发到服务器,效率太差了!
专家回答的那个数据会回发到服务器,效率太差了!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
好象有点太多了啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询