Textbox als Log nutzen

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

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

    Textbox als Log nutzen

    Hallo Zusammen,
    ich habe folgendes Problem.

    In einer Textbox möchte ich einen "Befehl" (von mir vordefiniert) eingeben und es sollen anschließend die einzelnen Arbeitsschritte nach und nach in der Textbox angezeigt werden.

    VB.NET-Quellcode

    1. Private Sub TextBox10_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox10.KeyDown
    2. If e.KeyData = Keys.Enter Then
    3. If Me.TextBox10.Text = "Marcus -> me.form1.show(all)" Then
    4. Me.TextBox10.Text = Me.TextBox10.Text & vbNewLine & "Zeige alle Button an ..."
    5. Me.TextBox10.Text = Me.TextBox10.Text & vbNewLine & "... Button1.show"
    6. Me.Button1.Show()
    7. Me.TextBox10.Text = Me.TextBox10.Text & vbNewLine & "... Button2.show"
    8. Me.Button2.Show()
    9. Me.TextBox10.Text = Me.TextBox10.Text & vbNewLine & "... Button10.show"
    10. Me.Button10.Show()
    11. Me.TextBox10.Text = Me.TextBox10.Text & vbNewLine & "... Button9.show"
    12. Me.Button9.Show()
    13. Me.TextBox10.Text = Me.TextBox10.Text & vbNewLine & "... Button11.show"
    14. Me.Button11.Show()
    15. Me.TextBox10.Text = Me.TextBox10.Text & vbNewLine & "... Button3.show"
    16. Me.Button3.Show()
    17. Me.TextBox10.Text = Me.TextBox10.Text & vbNewLine & "... Buton4.show"
    18. Me.Button4.Show()
    19. Me.TextBox10.Text = Me.TextBox10.Text & vbNewLine & "... Button8.show"
    20. Me.Button8.Show()
    21. Me.TextBox10.Text = Me.TextBox10.Text & vbNewLine & "... end show"
    22. Me.TextBox10.Text = Me.TextBox10.Text & vbNewLine & "Marcus ->"
    23. End If
    24. End If
    25. End Sub


    Problem ist jetzt, dass ich es mehr oder weniger nach und nach abarbeiten lassen möchte, damit der BN sieht, was passiert.

    Als Beispiel:
    1.Befehl -> Text anzeigen -> warten -> 2.Befehl

    mit Sleep zwischen den Befehlen kalppt es nicht, da der Text erst dann angezeigt wird, wenn der komplette Code abgearbeitet ist.

    So wie es in jeder Shell/Bash/Console/CMD..... auch klappt
    Mein Benutzer möchte nicht von anfang an alle Buttons auf der Form sehen.
    Da dieser ein extrem großes EGO hat möchte er, wenn er sich alle Button anzeigen lassen will, sehen das etwas passiert und das auch andere erstaunt sind , wie coll er das jetzt gemacht hat.

    Mal ganz extrem betrachtet:
    Er will, dass es aussihet wie im Film, wenn jemand ein Fenster aufmacht, das Programm Hackt und sich plötzlich wie von Zauberhand andere Funktionen verfügbar sind.

    :cursing:
    Was zur Hölle? Schnapp Dir nen einfachen StringBuilder und hänge den jeweiligen String an. Das wäre viel sauberer.
    KeyData kannst Du mit ​KeyCode ersetzen.

    Und ja, was genau soll das werden? Oo Wozu braucht man sowas? Nimm doch einfach gleich ne Konsolenanwendung oder schreib' Dir nen PowerShell-Script.

    Ach ja, zum Form.Show-Ding da noch:
    Instanziierung von Forms und Aufruf von Dialogen
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:

    Sisco schrieb:

    Da dieser ein extrem großes EGO hat möchte er
    es gleich selbst machen.
    Falls Du das bist:
    Was soll das? Dieser Code oben ist einfach zu schnell, um da einen Film zu sehen.
    Pack eine entsprechende Sequenz in eine separate Prozedur und ruf die entsprechend parametriert auf.
    Und

    VB.NET-Quellcode

    1. Me.TextBox1.AppendText("Zeige alle Button an ..." & Environment.NewLine)
    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!