Announcement

Collapse
No announcement yet.

sofortige Änderung von Text eines Labels

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • sofortige Änderung von Text eines Labels

    hallo,

    was vielleicht schon der titel verrät, ist mein problem ziemlich leicht zu erklären.

    ich habe ein label, welches eine bestimmte nachricht ausgeben soll. dies soll zeitgleich mit dem durchlauf einer prozedur passieren (information für den anwender). da die prozedur relativ lange benötigt, bis sie durchgelaufen ist (10 sekunden), wäre es natürlich sinnvoll, dass der text in meinem label schon während (oder theoretisch auch kurz vor) dem durchlauf der prozedur erscheint.

    habe schon relativ viel rumprobiert, aber der text wird immer erst nach beendigung der prozedur angezeigt und da ist der inhalt für den anwender nicht mehr von belang.

    gibt es eine möglichkeit, dass der text schon unmittelbar vor oder während dem durchlauf der prozedur dem anwender angezeigt wird?

    mfg stash

  • #2
    Hallo,

    eine Möglichkeit ist Control.Invalidate ggf. mit Control.Update.

    Sauberer wäre, die langdauernde [strikeout]Prozedur[/strikeout] Methode in einen BackgroundWorker auszulagern und die Anzeige von dort aus zu ändern.

    Gruß Jürgen

    Comment


    • #3
      des mit dem background worker ist ne gute idee, allerdings auch ziemlich kompliziert. kannst du mir ein leichtes kleines codebeispiel dafür geben.
      (bei mir geht es ja auch nur um die änderung eines textes in einem label)

      Comment


      • #4
        Hallo,

        als "quick and dirty"-Lösung kann Application.DoEvents() aufgerufen werden bevor die Methode aufgerufen wird.

        Für den Backgroundworker sind genügend Bsp. in der MSDN. Einfacher und kürzer können wir auch keine Bsp. angeben.

        mfG Gü
        "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

        Comment


        • #5
          des mit dem application.doevents klappt. danke

          Comment


          • #6
            des mit dem application.doevents klappt. danke
            Wie Gü schon mit "quick and dirty" angedeutet hat solltest du das nochmal prüfen.
            Durch Application.DoEvents werden alle Events ausgeführt nicht nur die Paint Events die für das Aktualisieren des Labels sorgen.

            Zum Beispiel wird deine GUI jetzt wieder für den Anwender steuerbar, heißt während deine Prozedur läuft könnte der Anwender den entsprechenden Dialog schließen womit dein Label(zumindest der Systemteil innerhalb der Label Klasse) weg wäre. Je nachdem was du alles in der Prozedur damit tust knallt das fürchterlich oder hat sonstige Nebeneffekte.

            Comment

            Working...
            X