我的表单有很多文本框。当其中一个文本框发生更改时,我想将文本框的名称及其新值发送给方法。我该怎么做?
答案 0 :(得分:3)
注册相关文本框的OnTextChanged事件:
txtBox1.OnTextChanged += new TextChangedEventHandler(txtBox_OnTextChanged);
txtBox2.OnTextChanged += new TextChangedEventHandler(txtBox_OnTextChanged);
txtBox3.OnTextChanged += new TextChangedEventHandler(txtBox_OnTextChanged);
// And so on...
然后:
public void txtBox_OnTextChanged(object sender, EventArgs e)
{
var textBox = (TextBox)sender;
OtherMethod(textBox.Name, "Some New Value");
}
public void OtherMethod(string name, string value)
{
// Do whatever here
}
答案 1 :(得分:1)
将文本框的“Text Changed”事件链接到一个函数,然后将该文本框的成员发送到该方法:
private void myTxtbox_TextChanged(object sender, EventArgs e)
{
//Call the method with the name and value of the text box
myMethod(myTextBox.Name, myTextBox.Text);
}
只需对表单中的每个文本框执行此操作。
编辑:这是通用代码
以下是文本框的通用代码:
private void allTxtBox_TextChanged(object sender, EventArgs e)
{
//'sender' is the text box who's text was just changed
string name = ((TextBox)sender).Name;
string text = ((TextBox)sender).Text; //This will be the new text in the text box
//Call the method with the name and value of the text box
myMethod(name, text);
}
使用此方法只需将每个文本框的“TextChanged”事件链接到此一个函数。您可以在Visual Studio的“属性”窗口中的事件编辑器中轻松完成。