C# Event dauerhaft ausführen?

5 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Du kannst natürlich einen Timer nehmen, der die Berechnung alle paar Millisekunden durchführt, aber das führt zu völlig überflüssiger CPU-Belastung und sollte deshalb vermieden werden.

Die Berechnung ist ja nur nötig, wenn sich der Inhalt der TextBox ändert. Dafür hat die TextBox das Ereignis TextChanged.

-----

Einen Ereignishandler kann Visual Studio selbständig erstellen: wenn du im Formularentwurf einen Doppelklick auf die TextBox machst, landest du automatisch in der neu angelegten Methode

    private void textBox1_TextChanged(object sender, EventArgs e) {
        [blinkende Schreibmarke]
    }

(im Hintergrund wird im "Designer" des Formulars auch das Ereignis mit dem Ereignishandler verknüpft:

this.textBox1.TextChanged += new System.EventHandler(this.textBox1_TextChanged);

aber das braucht dich am Anfang nicht zu interessieren)

In diesem Ereignishandler kannst du das Zählen durchführen (am einfachsten durch Zugriff auf

textBox1.Text.Length

) oder die Zählroutine aufrufen (was meinem persönlichen Stil mehr entsprechen würde -- Logik der Datenverarbeitung soweit wie möglich von ihrer Auslösung durch Interfaces trennen)

Woher ich das weiß:Berufserfahrung – Software-Entwickler
verreisterNutzer  09.06.2018, 15:20

Frage wurde bereits beantwortet. Wenn du weitere c# beantworten würdest:

Auf meinem Profil

0
PWolff  09.06.2018, 17:20
@regex9

Ich hab ihn so verstanden, dass er mich gebeten hat, in seinem Profil nach weiteren C#-Fragen zu suchen

1

Die Textboxe hat doch ein onChange Event.

Sobald etwas verändert wird wird das Event angestoßen.

Entweder per Timer, oder per Event.

Du kannst einen Timer hinzufügen, du musst dann einstellen, wie schnell er ausgeführt werden soll und du muss ihn Starten. Wie man einen Timer verwendet, siehst du hier: https://www.youtube.com/watch?v=tVlYojL7iCI
Oder in einem andern Videotutorial.

Um ein Event zu verwenden, kannst du einen Doppelklick auf die TextBox machen. Du kannst dann dort den Code einfügen. Jedes Mal wenn der Inhalt der TextBox sich verändert, wird der Code ausgeführt.

Ich hoffe ich konnte dir weiterhelfen, bei weiteren Fragen stehe ich gerne zur Verfügung.

MfG, M Gaspard

du lässt es einfach per timer in intervallen wieder auftreten

verreisterNutzer  09.06.2018, 14:59

und wie?

0
Fragefuechsin  09.06.2018, 15:01
@verreisterNutzer

nutze bitte den Tipp
nimm die Systemzeit, nimm eine Konstante oder formel und kombinier das mit einer undfunktion die dann deine Aktion auslöst

0
verreisterNutzer  09.06.2018, 15:01

Ich habe es so versucht:

Timer myTimer = new Timer();

    myTimer.Elapsed += new ElapsedEventHandler(DisplayTimeEvent);

    myTimer.Interval = 1000; // 1000 ms is one second

    myTimer.Start();

    public static void DisplayTimeEvent(object source, ElapsedEventArgs e)

    {

      MessageBox.Show("Test");

    }

Fehler:

Ungültiges Token "+=" in Klassen-, Struktur- oder Schnittstellenmemberdeklaration.

Bezeichner erwartet

0

--- CLOSED ---

Okey Danke an alle. Hat funktioniert mit textBox1_TextChanged