Tooltiptext eines UserControl zur Laufzeit ändern

  • VB.NET

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

    Tooltiptext eines UserControl zur Laufzeit ändern

    Hallo,

    Folgende Ausganssituation:
    Ich habe eine Form in der ich das ToolTip-Steuerelement eingebunden habe um bei den Controls über die dann erscheinende Eigenschaft "ToolTip" auf "ToolTip1" beim
    Mouseover einen Tooltip-Text anzeigen zu können.
    So weit so gut, funktioniert einwandfrei.

    Jetzt habe ich aber auch Controls (eigenes Usercontrol) auf der Form, bei dem ich zur Laufzeit den Tooltip-Text ändern möchte, und das auch noch aus dem Code des UserControls heraus.

    Geht so etwas und wenn ja wie?

    Danke schon mal für eure Ideen!

    Gruß, P..
    Dazu ein Event im UC einbauen, welches das Form abfängt. Und im EventHandler dann

    VB.NET-Quellcode

    1. ToolTip1.SetToolTip(DeinUserControl, "neuer ToolTipTextDafür")
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Häufig von mir verwendete Abkürzungen: CEs = control elements (Labels, Buttons, DGVs, ...) und tDS (typisiertes DataSet)
    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht in den Spekulatiusmodus gehen.
    @Phasenverschiebung Üblicherweise kannst Du solche Fragestellungen beantworten, indem Du im Designer eine Vorgabe machst und Dir dann den Designer-Code in der Prozedur InitialiizeComponents() in der Datei FormX.Designer.vb ansiehst.
    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).
    VB-Fragen über PN / Konversation werden ignoriert!

    Neu

    Öhm ... wenn die Frage an mich geht:

    VB.NET-Quellcode

    1. Public Class DeinUserControl
    2. Public Event ChangeMyToolTipText 'das kannst Du aber nennen, wie Du willst
    3. 'ich geh davon aus, dass Du mithilfe eines Buttons (z.B. namens BtnChangeToolTipText) den Text ändern willst
    4. Public Sub BtnChangeToolTipText_Click(sender As Object, e As EventArgs) Handles BtnChangeToolTipText.Click
    5. RaiseEvent ChangeMyToolTipText
    6. End Sub
    7. End Class
    8. 'in Form1 oder wie Deine Formularklasse heißt
    9. Private Sub DeinUserControl_ChangeMyToolTipText(sender As Object, e As EventArgs) Handles DeinUserControl.ChangeMyToolTipText
    10. ToolTip1.SetToolTip(DeinUserControl, "neuer Text)
    11. End Sub

    so aus dem Kopf heraus

    Wenn Du das gedanklich hast, es nachvollziehen kannst und das läuft, kümmern wir uns um Texte, die dann im UC-Code festgelegt werden
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Häufig von mir verwendete Abkürzungen: CEs = control elements (Labels, Buttons, DGVs, ...) und tDS (typisiertes DataSet)
    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht in den Spekulatiusmodus gehen.

    Neu

    Phasenverschiebung schrieb:

    wie ich da vorgehe?
    Ganz einfach:
    Zunächst alles im Designer:
    =>
    dann die Prozedur InitializeComponents() aufrufen

    erforschen und den relevanten Code kopieren

    einen zweiten Button hinzufügen, wo Du die Änderung vornimmst:

    VB.NET-Quellcode

    1. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    2. Me.ToolTip1.SetToolTip(Me.Button1, "neuer Test")
    3. End Sub
    und feddich:
    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).
    VB-Fragen über PN / Konversation werden ignoriert!