我有一個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;
}
不幸的是,這種方法不起作用。它甚至不會編譯。有沒有一種方法可以封裝我正在試圖在上面顯示的方法中完成的功能?如果是這樣,怎麼樣?
謝謝,