ToolTip eines ToolStripButtons entfernen

  • C#

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    ToolTip eines ToolStripButtons entfernen

    Moin Leute,
    ich hab da ein Problem, wozu ich noch keine Lösung gefunden habe.
    In meinem Makro-Programm wird nach Betätigung des Start-Buttons die Firm gedisablet, weil der Ablauf etwas länger dauert und über diese GUI nicht eingegriffen werden soll.
    Dieser Button ist ein ToolStripButton mit einem ToolTip-Text, das ToolTip-Control ist das ToolStrip(Item)-interne Control, das von außen nicht zugreifbar ist.
    In dem Moment, wo GUI.Enabled = false gesetzt wird, wird der ToolTip mit eingefroren und über die gesamte Laufzeit angezeigt.

    Ich hab ein kleines Testprogramm geschrieben, das den Effekt reproduziert: Leere Forn, C&P und auf "XXX" drücken, dann wird die GUI für 5 Sekunden gedisablet.
    Spoiler anzeigen

    C#-Quellcode

    1. using System;
    2. using System.Windows.Forms;
    3. namespace WindowsFormsApplication1
    4. {
    5. public partial class Form1 : Form
    6. {
    7. public Form1()
    8. {
    9. this.InitializeComponent();
    10. ToolStripButton toolStripButton1 = new ToolStripButton();
    11. toolStripButton1.Text = "XXX";
    12. toolStripButton1.ToolTipText = "Bla bla";
    13. toolStripButton1.Click += new System.EventHandler(this.toolStripButton1_Click);
    14. ToolStrip toolStrip1 = new ToolStrip();
    15. toolStrip1.Items.AddRange(new ToolStripItem[] { toolStripButton1 });
    16. toolStrip1.Location = new System.Drawing.Point(0, 0);
    17. toolStrip1.Size = new System.Drawing.Size(284, 25);
    18. this.Controls.Add(toolStrip1);
    19. }
    20. private void toolStripButton1_Click(object sender, EventArgs e)
    21. {
    22. this.Enabled = false;
    23. System.Threading.Thread.Sleep(5000);
    24. this.Enabled = true;
    25. }
    26. }
    27. }
    Hat jemand von Euch eine Idee, wie dieses Problem zu umgehen ist?
    Ein separates ToolTip-Control habe ich bereits probiert, das nimmt keine ToolStripItem an, da das eine Component ist.
    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!
    Ist ja ein doofes Verhalten...

    Hab damit noch kein Problem gehabt. So als ersten Gedanken würde ich versuchen den Button zuerst zu deaktivieren und dann die Form. Evtl. klappt das ja...
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    Das hier ist doch die "ganz" "normale" Thematik, dass die GUI eingefroren wird. Kannst du die Arbeit in einen Task/Thread auslagern?

    C#-Quellcode

    1. private async void toolStripButton1_Click(object sender, EventArgs e) {
    2. this.Enabled = false;
    3. await Task.Delay(5000);
    4. this.Enabled = true;
    5. }

    mrMo schrieb:

    Button zuerst zu deaktivieren und dann die Form
    Hatte ich auch schon, geht nicht.
    @Bluespide Jou, das war es. :thumbup:
    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!