mehrere Tooltips auf einem Dialog

  • VB.NET

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

    mehrere Tooltips auf einem Dialog

    Moin!

    ich habe einen Dialog mit mehreren Blitz-Bildern, die im Falle eines Fehler eingeblendet werden sollen.

    Nun möchte ich bei den Bildern die Fehlerursache als Tooltip hinterlegen.

    Hierzu hatte ich mich zunächst an Tooltip auf Tooltip1 ändern orientiert.

    Hier mein mein bisheriger Code:

    * EIN Tootip aus der Toolbox platziert.
    * dann habe ich folgenden Code erstellt

    VB.NET-Quellcode

    1. ' Eingabe für Lage erfolgt
    2. If txt_Lage.Text.Trim.Length < 10 Then
    3. Status = False
    4. lbl_err_Lage.Visible = True
    5. pb_err_Lage.Visible = True
    6. Dim t1 As New ToolTip
    7. t1.SetToolTip(pb_err_Lage, "mindestens 10 Zeichen erforderlich!")
    8. Else
    9. lbl_err_Lage.Visible = False
    10. pb_err_Lage.Visible = False
    11. End If
    12. ' kein Zeitfenster zulässig
    13. If cal_Anfrage.SelectionStart.ToString("dd.MM.yyyy") = cal_Anfrage.SelectionEnd.ToString("dd.MM.yyyy") Then
    14. pb_Err_Meldedatum.Visible = False
    15. Else
    16. pb_Err_Meldedatum.Visible = True
    17. Dim t2 As New ToolTip
    18. t2.SetToolTip(pb_err_Lage, "Zeitfenster sind NICHT zulässig!")
    19. Status = False
    20. End If
    21. If _ID_ArtEinleitung < 1 Then ' Überwachung der Combobox
    22. pb_Err_ArtEinleitung.Visible = True
    23. Dim t3 As New ToolTip
    24. t3.SetToolTip(pb_err_Lage, "keine Art der Einleitung gewählt!")
    25. Else
    26. pb_Err_ArtEinleitung.Visible = False
    27. End If
    28. If _FID_UserOfJob < 1 Then ' Überwachung der Combobox
    29. pb_Err_User.Visible = True
    30. Dim t4 As New ToolTip
    31. t4.SetToolTip(pb_err_Lage, "kein Bearbeiter definiert!")
    32. Else
    33. pb_Err_User.Visible = False
    34. End If
    35. bt_Create.Enabled = Status
    36. End Sub


    Wenn ich das ausführe, dann kommt es zu einer Überlagerung der Tooltips. Alle Tooltips werden für das erste Bild in dem Dialog angezeigt.



    Kann mir einer weiterhelfen?

    Gruß Jan
    Hinterlege einen ToolTip im Designer und beschrifte ihn zur Laufzeit. Du erzeugst gerade viele.
    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.
    Moin!

    erst hatte ich Euch nicht verstanden und dann heute morgen beim Spaziergang mit dem Hund ist es mir klar geworden und ich habe den Fehler gefunden!

    VB.NET-Quellcode

    1. Dim t1 As New ToolTip
    2. t1.SetToolTip(pb_err_Lage, "mindestens 10 Zeichen erforderlich!")
    3. Dim t2 As New ToolTip
    4. t2.SetToolTip(pb_err_Lage, "Zeitfenster sind NICHT zulässig!")
    5. Dim t3 As New ToolTip
    6. t3.SetToolTip(pb_err_Lage, "keine Art der Einleitung gewählt!")
    7. Dim t4 As New ToolTip
    8. t4.SetToolTip(pb_err_Lage, "kein Bearbeiter definiert!")


    Ich habe überall pb_err_Lage verwendet und nicht die unterschiedlichen Controlls wie eigentlich beabsichtigt!!

    Gruß Jan
    @jan99 Du kannst eine ToolTip-Instanz für (fast) beliebig viele Controls verwenden.
    Wie @VaporiZed schrieb:
    Zieh im Designer ein ToolTip auf das GUI und klicke die einzelnen Controls an.
    Unter dem Namen des Controls wird dann die Vorgabe des ToolTip-Textes angeboten.
    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!
    Damit Du weißt, wie es auch gehen kann:

    unten die neue PicBox-Einstellung, wenn ein ToolTip auf das Form hinzugefügt wurde.
    Oben das Ergebnis zur Laufzeit, wenn man folgenden easy-peasy-Code hinzufügt:

    VB.NET-Quellcode

    1. Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
    2. PictureBox1.Visible = String.IsNullOrEmpty(TextBox1.Text)
    3. End Sub
    4. Private Sub TextBox2_TextChanged(sender As Object, e As EventArgs) Handles TextBox2.TextChanged
    5. PictureBox2.Visible = String.IsNullOrEmpty(TextBox2.Text)
    6. End Sub
    7. Private Sub TextBox3_TextChanged(sender As Object, e As EventArgs) Handles TextBox3.TextChanged
    8. PictureBox3.Visible = String.IsNullOrEmpty(TextBox3.Text)
    9. End Sub
    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.
    @jan99 Nicht wundern:

    RodFromGermany schrieb:

    Unter dem Namen des Controls wird dann die Vorgabe des ToolTip-Textes angeboten.
    Bei @VaporiZed erscheint der ToolTipText unter der Kategorie Sonstiges.
    Bei mir sind die Properties alphabetisch, bei VaporiZed nach Kategorien sortiert.
    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!