Wie erkenne ich ein alt-Klick auf den Link in RichTextBox
-
07-07-2019 - |
Frage
Ich habe eine RichTextBox in einem WinForm mit URL: s. Sie können angeklickt werden, aber ich möchte erkennen, wenn der Benutzer sie nach rechts geklickt wird.
Lösung
Ich denke, das ist, was Sie vielleicht suchen werden. Auf dem MouseDownEvent zunächst prüfen, ob Sie mit einem Rechtsklick handeln. Dann die Klickposition heraus und arbeiten Sie Ihren Weg zurück zum Text.
private void DoMouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
RichTextBox rtb = (RichTextBox)sender;
int charIndex = rtb.GetCharIndexFromPosition(new Point(e.X, e.Y));
int lineIndex = rtb.GetLineFromCharIndex(charIndex);
string clickedText = rtb.Lines[lineIndex];
// now check if the text was indeed a link
Regex re = new Regex("http://(www\\.)?([^\\.]+)\\.([^\\.]+)");
bool isLink = re.IsMatch(s);
}
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow