Lable Position zur Laufzeit anpassen oder Alternative

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von VaporiZed.

    Lable Position zur Laufzeit anpassen oder Alternative

    Hi,

    ich habe in meinem Form ein Lable das seinen Inhalt ändert, damit man sieht, dass da was passiert bzw. wann nichts mehr passiert. Jetzt ändert sich dabei auch die Größe des Lable und er schreibt fast bis auf den Rand des Form. Das sieht recht komisch aus. Wie macht man das richtig? Benutzt ihr da überhaupt Lable?

    Viele Grüße
    damit man sieht, dass da was passiert bzw. wann nichts mehr passiert.
    Als Kontrolle für dich, damit du siehst, wo das Programm ist; und dann schreibst du nen Text rein, welcher dann zu lang ist? Nutz lieber Debug.WriteLine("Zeile xy"). Dann hast du einen Text in der Ausgabe, nicht auf der GUI. Wenn ich damit kontrolliert habe, kommentiere ich das aus oder lösche die Zeile.

    Oder ich nutze Button-Farben. Das ist nützlich, wenn Aktion A vor Aktion B abgeschlossen sein muss.
    Standard (vor Auslösung): Grau
    während Prozedur läuft: Gelb
    Button1.Backcolor = Color.fromArgb(255, 255, 0)
    fertig: Grün
    ist Geschmackssache, ich weiß.


    Aber wenn das Programm läuft, lass die Kontrolle weg. :) Wird ja auch vorausgesetzt, dass das läuft. Für printf("Fertig!\n"); gabs in der C-Klausur Punktabzug.

    Bartosz schrieb:

    Aber wenn das Programm läuft, lass die Kontrolle weg.
    Oder häng ne "richtige" Console an und mach die Testausgaben dort rein.
    Musst Du mal vom Automaten übersetzen lassen.
    Angehängte Console kann nicht direkt geschlossen werden.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Wenn es darum geht, dem User Feedback zu geben, kommt es auch ggf. drauf an, ob Du einen Fortschritt berechnen kannst. Kann gäbe es derdiedas ProgressBar (kommt bei mir nie zum Einsatz).
    Dann kommt's drauf an, ob die Schritte sehr zeitaufwendig sind und den GUI-Thread blockieren. Dann müsstest Du ggf. mit Async/Await arbeiten und dem Programm damit die Möglichkeit geben, quasi Luft zu holen. Das würde sich darin äußern, dass Du tatsächlich z.B. ein Label einbaust. Hab ich (früher) bei einem Privatprojekt gemacht, bei dem ich im schlimmsten Fall die komplexen Daten vieler ausgewählter Dateien lud und mit anzeigen ließ, wieviele von wievielen Dateien schon abgearbeitet wurden. Notfalls könntest Du auch eine Animation laufen lassen (old Windows style mit der sich drehenden Sanduhr für einige Nostalgiker ;) )
    • Wie lange muss der User warten?
    • Welche Statusdurchsagen sind für den User relevant?
    • Sind die Schritte GUI-blockierend?
    • Sind sie anzahlmäßig immer bekannt (nicht unbedingt immer konstant)
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Dann könntest Du natürlich den LabelText mit der Info versehen, dass der Prozess entsprechend dauert und das Form mittels Me.Enabled = False deaktivieren und wenn das Programm fertig ist, dann reaktivieren. So kann der User klicken, was er will und es passiert nix.

    btw: Visual Studio ist US-amerikanisch. Daher nicht Lable, sondern Label.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.