C# Interrupt vorübergehend sperren?

OP #584298
Lesenswert?
• ▲
▼
Hallöchen,

wenn man mit .NET2 und dem Visual Studio zu einem Control einen 
Interrupthandler anlegt, wird eine passende leere Funktion in Form1.cs 
angelegt und in der Datei
Form1.designer.cs erscheint folgendes:

this.RichTextBox1.SelectionChanged += new 
System.EventHandler(this.RichTextBox1_SelectionChanged);

Nun möchte ich aber auch mal vom Programm aus die RichTextBox 
manipulieren, ohne das der Interrupt ständig ausgelöst wird. Dazu habe 
ich einfach folgendes gemacht:

private void foo()
{
  this.RTBexAwlEditor.SelectionChanged -= new 
System.EventHandler(this.RTBexAwlEditor_SelectionChanged); //ISR weg
  //hier der Code zum Bearbeiten RichTextBox1.Text
this.RTBexAwlEditor.SelectionChanged += new 
System.EventHandler(this.RTBexAwlEditor_SelectionChanged); //ISR wieder 
da
}

Das funktioniert, bin mir nur nicht sicher, ob das zuverlässig/legitim 
ist. Gibt es dafür eine "offizielle" Lösung?

Danke, Frank
#584386
Lesenswert?
• ▲
▼
Frank N. wrote:
> Hallöchen,
>
> private void foo()
> {
>   this.RTBexAwlEditor.SelectionChanged -= new
> System.EventHandler(this.RTBexAwlEditor_SelectionChanged); //ISR weg
>   //hier der Code zum Bearbeiten RichTextBox1.Text
> this.RTBexAwlEditor.SelectionChanged += new
> System.EventHandler(this.RTBexAwlEditor_SelectionChanged); //ISR wieder
> da
> }
>
> Das funktioniert, bin mir nur nicht sicher, ob das zuverlässig/legitim
> ist. Gibt es dafür eine "offizielle" Lösung?
>
> Danke, Frank

Das ist der offizielle Weg.
Nur braucht/sollte man dabei keinen neuen Handler zu erzeugen.
RTBexAwlEditor.SelectionChanged -= RTBexAwlEditor_SelectionChanged 
reicht.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren