| |
VB.NET - Ein- und UmsteigerTooltip durch anderes Steuerelement anzeigen lassen | | | Autor: flexxer | Datum: 22.02.22 10:46 |
| Hallo,
gibt es eine Möglichkeit über einen Button ein Tooltip über einem Label zu erzeugen.
Der Tooltip soll nicht über den aktuellen Steuerelement erscheinen, sondern über einen anderen.
MfG | |
Re: Tooltip durch anderes Steuerelement anzeigen lassen | | | Autor: Manfred X | Datum: 22.02.22 12:23 |
| Hallo!
Es gibt bei Controls das Hoover-Ereignis, die Location- und die Visible-Eigenschaften.
Mit einem Timer lässt sich die Anzeigeverzögerung und die Einblendezeit des Tipps steuern.
Allerdings muss man beim Positionieren und Einblenden des Tipp-Labels eventuell noch die
Abmessung des Containers (z.B. Formular) beachten.
Beispiel erforderlich? | |
Re: Tooltip durch anderes Steuerelement anzeigen lassen | | | Autor: flexxer | Datum: 22.02.22 13:11 |
| Beispiel wäre toll.
Aber reden wir vom gleichen ?
Ich möchte einen Hilfe-Button einbauen, der bei jedem klick ein anderes Tooltip auf einen anderem Label anzeigt. | |
Re: Tooltip durch anderes Steuerelement anzeigen lassen | | | Autor: Manfred X | Datum: 22.02.22 13:24 |
| Ich verstehe nicht, was Du meinst.
Die Windows.Forms enthalten einen Hilfebutton in der Titelleiste,
wenn man die Max/Min-Boxen deaktiviert.
Möchtest Du eine kontextsensitive Hilfefunktion einbauen?
Was meinst Du mit, "bei jedem Click ein anderes Tooltip auf einem anderen Label" anzeigen.
Hast Du eine Liste von Tipp-Texten, die nacheinander beim jeweils zugehörigen
Control angezeigt werden sollen? | |
Re: Tooltip durch anderes Steuerelement anzeigen lassen | | | Autor: flexxer | Datum: 22.02.22 13:51 |
| genau, Hast Du eine Liste von Tipp-Texten, die nacheinander beim jeweils zugehörigen
Control angezeigt werden sollen?
sowas sollte es werden. | |
Re: Tooltip durch anderes Steuerelement anzeigen lassen | | | Autor: Manfred X | Datum: 22.02.22 14:56 |
| Meinst Du so etwas?
Die Controls sind in einer Liste angeordnet.
Du kannst eventuell auch die Liste des Formulars nutzen
Die Hilfetexte stehen jeweils in der Tag-Eigenschaft der Controls.
Der Timer sorgt dafür, dass der Tooltip nach 5 Sekunden wieder verschwindet.
Public Class frmHelpList
Dim ctrls As New List(Of Control) 'Liste der Controls für Hilfe
Dim hlpLabel As New Label With {.Parent = Me,
.BackColor = SystemColors.Info, .AutoSize = True}
Dim WithEvents hlpButton As New Button With {.Parent = Me,
.Left = 300, .Text = "?"}
Dim hlpIndex As Integer = -1 'Listenindex für Hilfetexte
Dim WithEvents hlpTimer As New Timer With {.Interval = 1000}
Dim starttime As DateTime 'Startzeit der Anzeige des Hilfetextes
Private Sub frmHelpList_Load(sender As Object, e As EventArgs) Handles _
MyBase.Load
Me.Size = New Size(500, 300)
'Erstellen, Einrichten und Positionieren einiger Controls
ctrls.Add(New Button With {.Parent = Me, .Text = "Number One",
.Location = New Point(100, 100), .Width = 150,
.Tag = "Hilfe für Button"})
ctrls.Add(New Label With {.Parent = Me, .Text = "Number Two",
.Location = New Point(300, 100), .Width = 100,
.Tag = "Hilfe für Label"})
ctrls.Add(New TextBox With {.Parent = Me, .Text = "Number Three",
.Location = New Point(100, 200), .Width = 150,
.Tag = "Hilfe für Textbox"})
ctrls.Add(New CheckBox With {.Parent = Me, .Text = "Check",
.Width = 100, .Left = 400,
.Tag = "Hilfe für die Checkbox"})
End Sub
Private Sub hlpButton_Click(sender As Object, e As EventArgs)
Handles hlpButton.Click
'Verwaltung des Listenindex
hlpIndex += 1
If hlpIndex = ctrls.Count Then hlpIndex = 0
'Einrichten und Positionieren des Hilfelabels
With hlpLabel
.Text = ctrls(hlpIndex).Tag 'Hilfetext besorgen
'Text oben oder unten
.Top = ctrls(hlpIndex).Top - .Height
If .Top < 1 Then
.Top = ctrls(hlpIndex).Top + ctrls(hlpIndex).Height
End If
'zu langen Text nach links verschieben
.Left = Math.Min(ctrls(hlpIndex).Left, Me.Width - .Width - 20)
.Visible = True
'Timer starten
starttime = Now
hlpTimer.Enabled = True
End With
End Sub
Private Sub hlpTimer_Tick(sender As Object, e As EventArgs)
Handles hlpTimer.Tick
Dim displayseconds As Integer = 5
Dim elapsed As Integer = (Now - starttime).Seconds
If elapsed > displayseconds Then
hlpLabel.Visible = False
hlpTimer.Enabled = False
End If
End Sub
End Class | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
sevAniGif (VB/VBA)
Anzeigen von animierten GIF-Dateien
Ab sofort lassen sich auch unter VB6 und VBA (Access ab Version 2000) animierte GIF-Grafiken anzeigen und abspielen, die entweder lokal auf dem System oder auf einem Webserver gespeichert sind. Weitere InfosTipp des Monats Access-Tools Vol.1
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|