Ich möchte einen Tooltip anzeigen, wenn die Maus über einen Link in meinem benutzerdefinierten Rich-Edit-Steuerelement schwebt. Betrachten Sie den folgenden Text:
Wir alle schlafen in der Nacht.
In meinem Fall ist das Wort schlafen ist ein Link.
Wenn der Benutzer die Maus unter den Link, in diesem Fall "sleep", bewegt, möchte ich einen Tooltip für den Link anzeigen.
Mir fielen folgende Möglichkeiten ein, aber sie funktionieren nicht
1) Überfüllen von OnMouseHover
if(this.Cursor == Cursors.Hand)
tooltip.Show(textbox,"My tooltip");
else
tooltip.Hide(textbox);
Aber das klappt nicht.
UPDATE
Die genannten Links sind no URLs, d.h. es handelt sich um benutzerdefinierte Links, so dass Regex hier keine große Hilfe sein wird, es kann ein beliebiger Text sein. Der Benutzer kann wählen, ob er einen Link erstellen möchte.
Ich habe zwar nicht versucht GetPosition
Ich glaube nicht, dass es in Bezug auf Design und Wartung so elegant wäre.
Ich habe zum Beispiel folgende Zeile in meiner Richedit-Box
Wir schlafen bei Nacht. Aber die Fledermäuse bleiben wach . Kakerlaken werden aktiv in der Nacht.
In dem obigen Satz möchte ich drei verschiedene Tooltips haben, wenn die Maus über sie fährt.
sleep -> Human beings
awake -> Nightwatchman here
active -> My day begins
I gefangen OnMouseMove
wie folgt:
Arbeiten mit Messagebox
OnMouseMove( )
{
// check to see if the cursor is over a link
// though this is not the correct approach, I am worried why does not a tooltip show up
if(this.Cursor.current == Cursors.hand )
{
Messagebox.show("you are under a link");
}
}
Funktioniert nicht - mit Tooltip - Tooltip wird nicht angezeigt
OnMouseMove( MouseventArgs e )
{
if(cursor.current == cursors.hand )
{
tooltip.show(richeditbox,e.x,e.y,1000);
}
}
0 Stimmen
So hat es geklappt .. tooltip.Active = true
1 Stimmen
Oh, mir war nicht klar, dass Ihr Problem der Tooltip selbst ist... Wie auch immer, verwenden Sie System.Windows.Forms.Cursor.Current, um statisch den aktuellen Mauszeiger zu erhalten, wie in meiner letzten Antwort.