Как определить альтернативный клик по ссылке в RichTextBox

StackOverflow https://stackoverflow.com/questions/1637317

  •  07-07-2019
  •  | 
  •  

Вопрос

У меня есть RichTextBox в WinForm с URL: s. На них можно нажимать, но я хочу определить, щелкнул ли пользователь по ним правой кнопкой мыши.

Это было полезно?

Решение

Я думаю, это то, что вы можете искать. На MouseDownEvent сначала проверьте, что вы имеете дело с правой кнопкой мыши. Затем выясните позицию нажатия и вернитесь к тексту.

    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);
        }            
    }
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top