غیر فعال کردن یک رویداد در زمان اجرا در #c

گاهی لازم است در زمان اجرا یک رویداد رو موقتا و یا برای همیشه غیر فعال کنیم. برای اینکار با استفاده از =- ایونت هندلر مورد نظر را از رویداد حذف میکنیم.

مثال – فرض کنید که در جایی لازم است مقدار یک TextBox رو عوض کنیم بدون آنکه بخواهیم رویداد TextChanged آن تحریک شود (البته در اینجا بصورت موقت و بعد از تخصیص مقدار آن را به حالت اول برمیگردانیم) :

private void button1_Click(object sender, EventArgs e)
{ // remove event handler
textBox1.TextChanged -= new EventHandler(textBox1_TextChanged);
textBox1.Text = “salam”;
// add event handler
textBox1.TextChanged += new EventHandler(textBox1_TextChanged);
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
….
MessageBox.Show(“TextChanged”);
…. }