ToolTip

  • VB.NET

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von Torty H.

    ich möchte das ein ToolTip immer angezeigt wird

    zb

    Tomas schreibt einen Text dieser wird in der ToolTip angezeigt


    Problem :

    ToolTip geht nur wen ich mit der Maus darüber fahre

    Diese soll jedoch immer angezeigt werden


    ich bedanke mich für eure Hilfe
    Dann musst Du das selbst organisieren. Nimm eine Form mit Borderstyle None.
    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!
    /Edit:

    Hier ne Lösung

    VB.NET-Quellcode

    1. Private Sub Form1_Shown(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Shown
    2. Timer1.Interval = 1
    3. Timer1.Enabled = True
    4. End Sub
    5. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    6. ToolTip1.Show(TextBox1.Text, Me, New Point(MousePosition.X, MousePosition.Y))
    7. End Sub

    RodFromGermany schrieb:

    Dann musst Du das selbst organisieren. Nimm eine Form mit Borderstyle None.
    -.- haut irgentwie nicht hin nur wieder beim überfahren des buttons

    Madd Eye schrieb:


    /Edit:

    Hier ne Lösung








    Visual Basic Quellcode




    1
    2
    3
    4
    5
    6
    7
    8
    9
    10



    Private Sub Form1_Shown(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Shown
    Timer1.Interval = 1

    Timer1.Enabled = True

    End Sub

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    ToolTip1.Show(TextBox1.Text, Me, New Point(MousePosition.X, MousePosition.Y))
    End Sub




    oO :?: als ich meine Maus bewegte erstellte er mir über 100 von diesen tooltips ^^ :D nicht schlecht aber is nich das was ich brauche




    Also noch ma genauer erklären


    ich erstelle werend der laufzeit ein Objekt zb Button

    für diesen button möchte ich einen ToolTip der immer angezeigt wird und nicht wieder verschwindet

    je nach dem was Tomas schreibt wird dies dann in einer Tooltip der Text angeteigt

    VB.NET-Quellcode

    1. Dim time As Timer
    2. Dim tool As ToolTip
    3. Private Sub Form1_Shown(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Shown
    4. time = New Timer()
    5. AddHandler time.Tick, AddressOf time_tick
    6. time.Interval = 1
    7. tool = New ToolTip()
    8. time.Start()
    9. End Sub
    10. Private Sub time_tick()
    11. tool.Show(TextBox1.Text, Me, New Point(MousePosition.X, MousePosition.Y))
    12. End Sub
    nur wieder das Problem das , das ToolTip hinter der maus her bewegt und nicht beim Button von Tomas bleibt

    Me, <<< ist da die form gemeint dann könte man es doch für den Button deklarieren oder ??

    somit müsste er doch dann beim Button bleiben ??


    tool.Show(TextBox1.Text, Me.controls(ButtonVonTomas),)


    oder so ??
    Ein Timer dürfte (vor allem mit Interval 1) für so etwas ziemlich überflüssig sein, reicht doch völlig, wenn man es in ein Event setzt, das ohnehin bei der Texteingabe ausgelöst wird.

    VB.NET-Quellcode

    1. Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
    2. ToolTip1.Show(TextBox1.Text, TextBox1)
    3. End Sub


    //Edit
    Du könntest auch ein Label über der Textbox positionieren und den Tooltip dann dort "verankern":

    VB.NET-Quellcode

    1. ToolTip1.Show(TextBox1.Text, Label1)

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Unwesen“ () aus folgendem Grund: Umformuliert ^^

    Madd Eye schrieb:

    VB.NET-Quellcode

    1. Dim time As Timer
    2. Dim tool As ToolTip
    3. Private Sub Form1_Shown(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Shown
    4. time = New Timer()
    5. AddHandler time.Tick, AddressOf time_tick
    6. time.Interval = 1
    7. tool = New ToolTip()
    8. time.Start()
    9. End Sub
    10. Private Sub time_tick()
    11. tool.Show(TextBox1.Text, Me, New Point(MousePosition.X, MousePosition.Y))
    12. End Sub
    -.- ich sitzt voll aufem schlauch

    also

    Tomas hatt einen Client mit dem er einen nachricht schreib zb : ich bin ein noob
    -> Tomas startet Client
    -> Server schikt Info an alle anderen Clients 'in TextBox3' zb :Tomas
    ->client erstellt den button Tomas
    -> client macht folgendes


    VB.NET-Quellcode

    1. If TextBox3.Text.StartsWith(":") Then
    2. If TextBox3.Text = ":" & nick Then 'wen Textbox3.text mein nick erkennt dann mache nix weil ich bin ja schon da oO'
    3. 'Nix erstellen'
    4. Else
    5. vergleich = Replace(TextBox3.Text, ":", "") 'mach den DoppelPunkt Weg == Tomas'
    6. Dim poc As New Button
    7. poc.Name = vergleich 'Tomas'
    8. poc.Text = vergleich 'Tomas'
    9. poc.BackColor = Color.Blue
    10. poc.ForeColor = Color.White
    11. Me.Controls.Add(poc)
    12. TextBox3.Text = ""



    -> client hat Button erstellt mit text und name 'Klappt auch sehr gut'

    -> nun schreibt Tomas einen Text

    -> dies wird umgeschrieben zu "sagt, ich bin ein noob"
    -> dies wird zum server geschubst
    -> server schreibt um zu "sagt,Tomas,sagt,ich bin ein noob"
    -> server verteilt an Clients (zb meinen)
    -> mein client empängt "sagt,Tomas,sagt,ich bin ein noob"
    -> mein Client macht folgendes


    VB.NET-Quellcode

    1. If s.StartsWith("lauf") Then
    2. TextBox2.Text = s
    3. 'Wen jemand "sagt" s=sagt,Tomas,sagt,ich bin ein noob'
    4. ElseIf s.StartsWith("sagt") Then 'sagt,Tomas,sagt,ich bin ein noob'
    5. Dim mrs() As String = Split(s, ",")
    6. ToolTip1.Show("mrs(3)", Me.Controls(mrs(1)) 'es gibt ja denn button mit dem namen Tomas auf diesen soll ja das / der ToolTip angezeigt werden'
    7. Else
    8. TextBox3.Text = s
    9. End If


    also irgentwas mach ich falsch -.-
    Bitte schreib den Code noch einmal zusammenhängend am besten in Sub Routinen eingeteilt aber ansonsten kannst du meinen Code verwenden Oo

    schreibtst das was bei mir in Form_shown steht einfach statt ToolTip1.Show(...) und kopierst die andere Funktion time_tick

    Fertig
    Hab es nun folgendermasen gelöst

    ich habe einen Timer


    VB.NET-Quellcode

    1. Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
    2. If TextBox4.Text = "" Then ' Überprüfe ob Ler ist wenn ler dann mache Nix
    3. Else
    4. If TextBox4.Text.StartsWith("sagt," & nick) Then 'ist meine Nachricht in der Textbox dan mache auch Nix'
    5. Else 'wen nachricht zb von Tomas ist '
    6. Dim mrs() As String = Split(TextBox4.Text, ",") 'Splitte die Textbox auf und übergebe strings'
    7. Dim tipp As New ToolTip 'erstelle neues ToolTip'
    8. tipp.Show(mrs(3), Me.Controls(mrs(1))) 'Zeige Nachricht über den Tomas Button'
    9. End If
    10. End If
    11. End Sub


    ^^ ich bedanke mich für die Super Hilfe