Ich möchte eine QuickInfo anzeigen, wenn der Mauszeiger über einen Link in meinem benutzerdefinierten Rich-Edit-Steuerelement bewegt wird. Betrachten Sie den folgenden Text:Anzeige der QuickInfo beim Mauszeiger über einen Text
Wir alle schlafen in der Nacht.
In meinem Fall das Wort Schlaf ist ein Link.
Wenn der Benutzer die Maus unter dem Link bewegt, in diesem Fall "Schlaf", möchte ich einen Tooltip für den Link anzeigen.
Im Folgenden kam mir in den Sinn, aber sie arbeiten nicht
1) Trapping OnMouseHover
if(this.Cursor == Cursors.Hand)
tooltip.Show(textbox,"My tooltip");
else
tooltip.Hide(textbox);
Aber dies nicht funktioniert.
UPDATE
Die Links erwähnt sind nicht URLs, das heißt diese benutzerdefinierten Links sind, so Regex hier nicht viel helfen wird, es ein Text sein kann. Der Benutzer kann wählen, ob er einen Link erstellen möchte.
Obwohl ich GetPosition
Methode nicht versucht habe, denke ich nicht, dass es das hinsichtlich Design und Wartung elegant sein würde.
Lassen Sie mich sagen, ich habe die folgende Zeile in meinem Richedit Box
Wir Schlaf in der Nacht. Aber die Fledermäuse bleiben wach. Kakerlaken werden aktiv in der Nacht.
In dem obigen Satz möchte ich drei verschiedene Tooltips, wenn die Maus über sie schwebt.
sleep -> Human beings
awake -> Nightwatchman here
active -> My day begins
I OnMouseMove
gefangen wie folgt:
Arbeits- 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 erscheinen nicht
OnMouseMove(MouseventArgs e)
{
if(cursor.current == cursors.hand)
{
tooltip.show(richeditbox,e.x,e.y,1000);
}
}
Das tat den Trick .. tooltip.Active = true –
Oh, ich wusste nicht, Ihr Problem war der Tooltip selbst ... Wie auch immer, verwenden Sie System.Windows. Forms.Cursor.Current um den aktuellen Mauszeiger statisch zu bekommen, wie in meiner letzten Antwort. – Shimmy