我有一个TextBox,它声明式地设置了TextChanged事件。在某些情况下,我希望以编程方式设置此值。在这些情况下,我想禁用TextChanged事件,直到以编程方式完成设置值为止。然后,当我完成时,我想恢复事件处理程序的行为。以编程方式使用事件处理程序的C#+
对于一个文本框,我知道我可以通过以下操作实现这一点:
myTextBox.TextChanged -= myTextBox_TextChanged;
myTextBox.Text = "[Some Value]";
myTextBox.TextChanged += myTextBox_TextChanged;
不过,我想写这个功能为可通过多种方法来访问一个单一的方法。例如,我试图做如下类似的事情
private void UpdateTextValue(TextBox textBox, string newValue)
{
object eventHandler = textBox.TextChanged;
textBox.TextChanged -= eventHandler;
textBox.Text = newValue;
textBox.TextChanged += eventHandler;
}
不幸的是,这种方法不起作用。它甚至不会编译。有没有一种方法可以封装我正在试图在上面显示的方法中完成的功能?如果是这样,怎么样?
谢谢,