关键不是回发不回发的问题..
如果用验证控件或者写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里再继承出一个自定义的textbox,在失去焦点的事件里写验证代码。然后在你的应用程序里使用这个自己定义的textbox。
用js验证把!不喜欢用vs自己带的验证控件!
专家回答的那个数据会回发到服务器,效率太差了!
好象有点太多了啊