当TextBox's的文本发生变化时触发事件处理程序

本文关键字:变化 程序 事件处理 文本 TextBox | 更新日期: 2023-09-27 18:08:11

我正在构建一个格式非常不同的消息,它将在每次创建或更新一个人的帐户信息时发送。我正在从多个选项卡的表单中的许多文本框中生成消息。

计划是在每次打开帐户时将帐户中的所有当前信息加载到新消息中,然后更改已更改的任何文本框的值。

为每个文本框单独执行此操作很容易,但很耗时。

这个可行吗?

person_last_name.TextChanged += new EventHandler(AllTextBoxes_TextChanged);
person_first_name.TextChanged += new EventHandler(AllTextBoxes_TextChanged);
private void AllTextBoxes_TextChanged(object sender, EventArgs e)

如果是,你如何使用sender对象参数来检测哪个TextBox触发了消息?

当TextBox's的文本发生变化时触发事件处理程序

如果您的Xmal代码如下:

<TextBox Name="person_last_name" TextChanged="AllTextBoxes_TextChanged"></TextBox>
<TextBox Name="person_first_name" TextChanged="AllTextBoxes_TextChanged"></TextBox>

你可以像这样检测触发的文本框:

 private void AllTextBoxes_TextChanged(object sender, TextChangedEventArgs e)
        {
            string triggered = (e as TextBox).Name;
            if (triggered == "yourtarget")
            {
                //Do some thing with selected
                //(e as TextBox).
            }
        } 

是,这应该可以工作

如果你想对所有的文本框

做一些不同的事情,你可以使用switch语句
private void AllTextBoxes_TextChanged(object sender, TextChangedEventArgs e)
{
    string triggered = (e as TextBox).Name;
    switch (triggered)
    { 
    case "name1":
        //somecode
    case "name2":
        //somecode
    //etc
    } 
}
相关文章: