C#中多个TextBox共同事件怎么写
想要容器groupBox内所有的文本框可以实现以下两个事件。事件内该怎么写呢?
注册事件时的代码有问题吗?
注:文本框的命名没有规则。比如第一个文本框名为txtBox1,可能第二个文本框名为txt2。
- C# code
public Form1() { InitializeComponent(); SetEvents(); } /// <summary> /// 注册事件 /// </summary> void SetEvents() { foreach (Control ctl in this.groupBox.Controls) { if (ctl is TextBox) { TextBox txtBox = ctl as TextBox; txtBox.Click += new System.EventHandler(txtBox_Click); txtBox.TextChanged += new EventHandler(txtBox_TextChanged); } } } private void txtBox_Click(object sender, EventArgs e) { //选中当前文本框所有文本 //类似实现if(txtBox1.Focus()) // txtBox1.SelectAll(); } private void txtBox_TextChanged(object sender, EventArgs e) { //文本框内文本改变触发事件 }
[解决办法]
注册事件时的代码没有问题。
至于各个事件里面的代码怎么写,还是一样的,用遍历来实现。
[解决办法]
可以啊 你把所有的 textbox都绑定 txtBox_Click 事件 不就行了吗
[解决办法]
- C# code
Textbox textbox1 = (Textbox)sender;switch(textbox1.name){case "textbox1":{}}
[解决办法]
查看sender参数
[解决办法]
没问题。事件里面用sender获取执行的控件,如
TextBox txtBox = sender as TextBox;
if(txtBox.Focus())
txtBox.SelectAll();