将文本框名称发送到文本更改事件的自定义方法

时间:2010-08-09 14:59:54

标签: c# forms

我的表单有很多文本框。当其中一个文本框发生更改时,我想将文本框的名称及其新值发送给方法。我该怎么做?

2 个答案:

答案 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的“属性”窗口中的事件编辑器中轻松完成。