c# 一组textbox的keypress事件
我有20个textbox,textbox1~20,keypress触发的事件是一样的.如下。怎么样用数组的方法把它写到一个事件里来。privatevoidtextBox1...
我有20个textbox,textbox1~20,keypress触发的事件是一样的.如下。怎么样用数组的方法把它写到一个事件里来。
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (((int)e.KeyChar != 48 && (int)e.KeyChar != 49) && (int)e.KeyChar != 8)
{
e.Handled = true;
}
} 展开
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (((int)e.KeyChar != 48 && (int)e.KeyChar != 49) && (int)e.KeyChar != 8)
{
e.Handled = true;
}
} 展开
5个回答
展开全部
并不需要数组那么麻烦,既然你事件中的代码都是一样的,只需要稍微改下就好了。
解决方法是将所有文本框的KeyPress事件绑定到同一个事件方法中!
操作:
将textBox1_KeyPress事件改名为textBox_KeyPress,然后在你需要的文本框的属性窗那里切换到事件页,将文本框的KeyPress事件选中textBox_KeyPress即可。
这样,所有的文本框KeyPress事件都绑定到同一个方法中,实现了你原来功能,且减少了很多代码。
以上信息希望对你有帮助^^
解决方法是将所有文本框的KeyPress事件绑定到同一个事件方法中!
操作:
将textBox1_KeyPress事件改名为textBox_KeyPress,然后在你需要的文本框的属性窗那里切换到事件页,将文本框的KeyPress事件选中textBox_KeyPress即可。
这样,所有的文本框KeyPress事件都绑定到同一个方法中,实现了你原来功能,且减少了很多代码。
以上信息希望对你有帮助^^
展开全部
循环取所有的textbox,添加事件
foreach(Control c in panel.Controls)
{
if(c is TextBox)
{
textBox txt=c as TextBox;
if(txt.tag=="abc")//这里是为了防止panel中有其他textbox为20textbox添加tag区分
{
txt.keypress+=new KeyPressEventHandler(textBox_KeyPress);
}
}
}
foreach(Control c in panel.Controls)
{
if(c is TextBox)
{
textBox txt=c as TextBox;
if(txt.tag=="abc")//这里是为了防止panel中有其他textbox为20textbox添加tag区分
{
txt.keypress+=new KeyPressEventHandler(textBox_KeyPress);
}
}
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你是用的VS么,直接在那个TextBox的keypress事件选你写的这个函数就行了,不用循环生成
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
private void Form1_Load(object sender, EventArgs e)
{
textBox1.KeyPress += new KeyPressEventHandler(textBox_KeyPress);
textBox2.KeyPress += new KeyPressEventHandler(textBox_KeyPress);
textBox3.KeyPress += new KeyPressEventHandler(textBox_KeyPress);
textBox4.KeyPress += new KeyPressEventHandler(textBox_KeyPress);
}
void textBox_KeyPress(object sender, KeyPressEventArgs e)
{
MessageBox.Show("dsfa");
}
比如这样就可以了
{
textBox1.KeyPress += new KeyPressEventHandler(textBox_KeyPress);
textBox2.KeyPress += new KeyPressEventHandler(textBox_KeyPress);
textBox3.KeyPress += new KeyPressEventHandler(textBox_KeyPress);
textBox4.KeyPress += new KeyPressEventHandler(textBox_KeyPress);
}
void textBox_KeyPress(object sender, KeyPressEventArgs e)
{
MessageBox.Show("dsfa");
}
比如这样就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int []kChar={48.49.8}
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{bool found=false;
foreach(int k in kChar)
{if((int)e.KeyChar==k){found=true;break;}
}
if(found==false){ e.Handled = true;}
}
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{bool found=false;
foreach(int k in kChar)
{if((int)e.KeyChar==k){found=true;break;}
}
if(found==false){ e.Handled = true;}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询