我在 C# 的富文本框中有一个链接。当我在一个 url 链接上时,我想显示一个菜单。如果它不是 url,那么我不想显示任何内容。现在我正在点击鼠标按下事件并根据鼠标指针位置选择行,如果所选行是有效的 url,我会显示菜单。它工作得很好,但是当我在 url 旁边有一些文本时,仍然将该行检测为有效 url 并出现菜单。此外,我也无法点击鼠标更改事件。关于如何完成我想做的事情的任何想法?
谢谢,
我在 C# 的富文本框中有一个链接。当我在一个 url 链接上时,我想显示一个菜单。如果它不是 url,那么我不想显示任何内容。现在我正在点击鼠标按下事件并根据鼠标指针位置选择行,如果所选行是有效的 url,我会显示菜单。它工作得很好,但是当我在 url 旁边有一些文本时,仍然将该行检测为有效 url 并出现菜单。此外,我也无法点击鼠标更改事件。关于如何完成我想做的事情的任何想法?
谢谢,
不确定这是否是您正在寻找的,但我相信您会找到比这更好的
您可以在调用 MouseDown 时尝试此操作
private void richTextBox1_MouseDown(object sender, MouseEventArgs e)
{
// Continue if the Right mouse button was clicked
if (e.Button == MouseButtons.Right)
{
// Check if the selected item starts with http://
if (richTextBox1.SelectedText.IndexOf("http://") > -1)
{
// Avoid popping the menu if the value contains spaces
if (richTextBox1.SelectedText.Contains(' '))
{
// Show the menu
contextMenuStrip1.Show(Cursor.Position.X, Cursor.Position.Y);
}
}
}
}
或者当单击链接时,但这不适用于鼠标右键单击
private void richTextBox1_LinkClicked(object sender, LinkClickedEventArgs e)
{
contextMenuStrip1.Show(Cursor.Position.X, Cursor.Position.Y);
}
谢谢,
我希望这有帮助 :)