Infobox erstellen

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

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von Bartosz.

    Infobox erstellen

    Hallo liebes Forum,

    welche Möglichkeiten gibt es, eine Infobox zu erstellen (siehe Beispielbild)?
    Ich würde gerne ein Mouse Hover Event nutzen und dann eine Infobox mit einem Text erscheinen lassen. Diese soll verschwinden, sobald der Mousezeiger weg ist (Event Leave).

    Die MessageBox ist leider nicht gut, da man einen Button klicken muss. Dann nutzt mir das asynchrone Erscheinen auch nichts...
    Bilder
    • Infobox - Kopie.jpg

      12,42 kB, 240×112, 369 mal angesehen
    An die Neulinge: Nutzt Option Strict On und Option Infer Off. Dadurch kommt ihr mit Datentypumwandlungen nicht durcheinander und der Code verbessert sich um Einiges! Solche Fehler à la Dim Beispiel As Integer = "123" können nicht mehr passieren.
    @Bartosz Woran hängt es?
    Aboniere das HOver-Event auf einem Control Deiner Wahl und dann rufst Du einen nicht-modalen Dialog mit .Show(Me) auf (Me um den Dialog nicht hinter das Hauptfenster klicken zu können.
    Wenn Du dem Dialog den .BorderStyle = None gibst, sieht er schon fast aus wie auf dem Bild.
    Die Bedingungen, den Dialog zu zerstören, musst Du noch herausarbeiten und entsprechend implementieren.
    Gugst Du auch
    Dialoge: Instanziierung von Forms und Aufruf von Dialogen
    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!
    Hallo,

    ich glaube er sucht nicht nach einer eigenständigen Box sondern eher nach einem ToolTip.
    Hier mal ein MS Artikel dazu: docs.microsoft.com/de-de/dotne…ttooltip?view=netcore-3.1

    Edit: Hier noch ein Codebeispiel (Credits an MS):

    VB.NET-Quellcode

    1. Private Sub Form1_Load(sender As Object, e As System.EventArgs) Handles MyBase.Load
    2. ' Neuen Tooltip erstellen
    3. Dim toolTip1 As New ToolTip()
    4. ' Hier kannst du verschiedenste Einstellungen treffen, welche es alle gibt kannst du in der Dokumentation nachlesen
    5. toolTip1.AutoPopDelay = 5000
    6. toolTip1.InitialDelay = 1000
    7. toolTip1.ReshowDelay = 500
    8. ' Hier kannst du das ToolTip auf deine Controls setzen
    9. toolTip1.SetToolTip(Me.button1, "My button1")
    10. toolTip1.SetToolTip(Me.checkBox1, "My checkBox1")
    11. End Sub


    Grüße Florian
    ----

    WebApps mit C#: Blazor
    @florian03 @EaranMaleasi ToolTip passt iwie nicht zu dem Bild, was @Bartosz gepostet hat.
    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!
    @RodFromGermany das passt schon :thumbsup:

    Wenn man auf google.com auf diese neun Punkte "hovert", ploppt genau dieses graue Kästchen als ToolTip auf.

    LG Florian
    ----

    WebApps mit C#: Blazor
    Ich danke euch. @RodFromGermany @florian03 @EaranMaleasi Das ging ja fix ^^
    Ich meinte einen ToolTip (neues Wort für mich)

    VB.NET-Quellcode

    1. Private Sub PictureBox_Fragezeichen_MouseHover(sender As Object, e As EventArgs) Handles PictureBox_Fragezeichen.MouseHover
    2. Dim ToolTip1 As New ToolTip()
    3. ToolTip1.AutoPopDelay = 10000
    4. ToolTip1.InitialDelay = 500
    5. ToolTip1.ReshowDelay = 500
    6. ToolTip1.ShowAlways = True
    7. ToolTip1.SetToolTip(Me.PictureBox_Fragezeichen, "TEST")
    8. End Sub
    Bilder
    • Picturebox ToolTip - Kopie.jpg

      9,35 kB, 70×100, 394 mal angesehen
    An die Neulinge: Nutzt Option Strict On und Option Infer Off. Dadurch kommt ihr mit Datentypumwandlungen nicht durcheinander und der Code verbessert sich um Einiges! Solche Fehler à la Dim Beispiel As Integer = "123" können nicht mehr passieren.
    Und jetzt pack den Code noch in den Konstruktor der Form (Nach Initialize()) , oder das Form_Shown Event, und dann ist das ne runde Sache. Jetzt Im Moment, wird jedes mal, wenn du mit deinem Mauszeiger drüberhoverst ein neues Tooltip Objekt erstellt, und mit der PictureBox verknüpft. Brauchen wir aber nicht.

    Was @RodFromGermany vorgeschlagen hat, ist dafür gedacht, wenn du selbst ein eigenes Panel oder sowas beim Hovern anzeigen möchtest. Dann musst du natürlich Hover abbonieren und dann das Panel visible machen. Aber auch hierbei, wird das Panel im voraus erstellt, und dann lediglich dessen Visible Eigenschaft verändert.

    ToolTip hingegen, erledigt das für dich automatisch.