Pregunta

Tengo un RichTextBox en un WinForm con URL: s. Se puede hacer clic en ellos, pero quiero detectar si el usuario hizo clic con el botón derecho en ellos.

¿Fue útil?

Solución

Creo que esto es lo que podrías estar buscando. En MouseDownEvent, primero verifique que esté haciendo clic con el botón derecho. Luego, descubra la posición en la que hizo clic y vuelva al texto.

    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);
        }            
    }
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top