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.

War es hilfreich?

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
scroll top