Laden...

Fehler beim Erstellen des Fensterhandles beim Arbeiten mit Timern

Erstellt von Sharpykeks vor 5 Jahren Letzter Beitrag vor 5 Jahren 2.633 Views
S
Sharpykeks Themenstarter:in
8 Beiträge seit 2018
vor 5 Jahren
Fehler beim Erstellen des Fensterhandles beim Arbeiten mit Timern

Guten Abend,

ich stehe etwas auf dem Schlauch. Ich habe eine einfache Vollbildanwendung. Klappt auch soweit super. Nur nach fast 10 Minuten bekomme ich den Fehler: > Fehlermeldung:

Fehler beim Erstellen des Fensterhandles.

VS Zeigt mir den Fehler bei timer.Enabled = true; an.

Der Timer Zeit auf einem Label Datum und Uhrzeit an.

Im Formload wird der Timer gestartet: datumuhrzeit.Start();

private void datumuhrzeit_Tick(object sender, EventArgs e)
        {
            Timer timer = new Timer();
            timer.Enabled = true;
            timer.Interval = 500;
            timer.Tick += new EventHandler(tick);
            
           
        }

        private void tick(object sender, EventArgs e)
        {
            label13.Text = DateTime.Now.ToString("dd.MM.yyy HH:mm:ss");
        }

Hat da jemand einen Rat?

Gruß

4.939 Beiträge seit 2008
vor 5 Jahren

Ist datumuhrzeit_Tick selber eine Ereignismethode eines Timers und du erstellst dadrin dann jedesmal einen neuen Timer?
Was soll das ganze denn werden?

Zeige doch direkt in der Ereignismethode das Datum im Label an.

S
Sharpykeks Themenstarter:in
8 Beiträge seit 2018
vor 5 Jahren

Hmm, also er soll im Label Datum und Uhrzeit anzeigen und eben jede Sekunde aktualisieren, sodass sekundengenau die Zeit aktualisiert und angezeigt wird.

Ich habe noch einen Lauftext, ein einfaches Label was von rechts nach links läuft und dann wieder von vorne, das fängt auch irgendwann an zu ruckeln.

Die Form ist Double buffered.

Ich teste das nochmal. Oder gibt es eine andere Möglichkeit?

4.939 Beiträge seit 2008
vor 5 Jahren

Also einfach


private void datumuhrzeit_Tick(object sender, EventArgs e)
{
     label13.Text = DateTime.Now.ToString("dd.MM.yyy HH:mm:ss");
}

Und stelle im VS-Designer oder zur Laufzeit (vor dem Start()-Aufruf) das Interval von der Timer-Komponente datumuhrzeit auf 500.

Edit: Ich wollte dir nur einen Hinweis geben, daß es keinen Sinn macht, jedesmal einen weiteren Timer zu erzeugen.
Und falls dir der Begriff "Fensterhandle" dabei komisch vorkommt: In Windows (WinAPI) wird jedes Control (auch nicht sichtbare, wie der Timer) als Window (Fenster) bezeichnet, das jeweils ein eigenes Handle (zur eindeutigen Identifizierung) erhält. Und da Windows nur eine begrenzte Anzahl von Handles verwalten kann (auch wenn diese seit WinXP deutlich mehr sind als noch früher), kommt es dann zu dieser Fehlermeldung.