Laden...

Label wird erst nach der Berechung aktualisiert

Letzter Beitrag vor 15 Jahren 5 Posts 1.059 Views
Label wird erst nach der Berechung aktualisiert

Hallo!

Stehe etwas am Schlauch. Ich habe eine Button, bei dem beim Drücken des Buttons ein Label sichtabr gemacht werden soll. Dieser Befehl steht auch an erster Stelle.
Danach passiert ein Datenbankzugriff etc.

Leider wird das Label erst sichtabr, nachdem alles andere abgearbeitet wurde.

Hier der Codeauszug:


private void button1_Click(object sender, EventArgs e)
        {
            label2.Visible = true;
            try
            {
....

Hab ich hier einen groben Denkfehler?

Danke!

Hi,

wenn der Code nach label2.Visible =true deine GUI blockiert wird das Label erst sichtbar wenn der rest abgearbeitet ist.

Schiebe mal zwischen label2..... und dem try Block ein
Application.DoEvents();

Gruß Chris

Das ist der falsche ansatz.

Langlaufende Aktionen gehören in eine extra thread.
Deshalb [FAQ] Warum blockiert mein GUI?

Hallo und willkommen,

das Label wird erst dann sichtbar, wenn Windows das dazugehörige Ereignis abarbeiten will. Was vorher erledigt werden muss, wird vorher erledigt. Konkret bedeutet das: Zuerst werden die Maßnahmen im Button-Click erledigt, dann wird neu gezeichnet.

Wenn Du (z.B. wegen eines Hinweises auf die aktuellen Arbeiten) das Label sofort sehen willst, musst Du **Invalidate **und/oder **Refresh **aufrufen. (Theoretisch ist auch Application.DoEvents möglich; aber das hat schädliche Nebenwirkungen und ist deshalb möglichst zu vermeiden.)

Ansonsten ist FZelles Hinweis das sinnvollste Verfahren.

Gruß Jürgen

Danke!