Comment détecter un clic sur un lien dans RichTextBox
-
07-07-2019 - |
Question
J'ai un RichTextBox dans un WinForm avec une URL: s. Vous pouvez cliquer dessus, mais je veux détecter si l'utilisateur a cliqué droit dessus.
La solution
Je pense que c'est ce que vous recherchez peut-être. Sur le MouseDownEvent, vérifiez d’abord que vous utilisez un clic droit. Déterminez ensuite la position sur laquelle vous avez cliqué et revenez au texte.
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);
}
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow