Domanda

Ho un RichTextBox in un WinForm con URL: s. Possono essere cliccati, ma voglio rilevare se l'utente ha fatto clic con il tasto destro del mouse.

È stato utile?

Soluzione

Penso che questo sia ciò che potresti cercare. Sul MouseDownEvent prima controlla di avere a che fare con un clic destro. Quindi scopri la posizione cliccata e torna al testo.

    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);
        }            
    }
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top