我需要你的帮助来在我的网络浏览器控件中创建一个右键单击选项。 可能是如果我右键单击链接将打开此选项: 在新标签页中打开 在新窗口中打开 复制链接 请帮助我创建一个 C# 代码和解释,因为我是网络浏览器控件的新手。
最佳答案
使用 Visual Studio 创建您自己的上下文菜单非常容易。只需将上下文菜单项拖放到您的表单上,然后砰的一声,您就快完成了。
添加您想要的按钮,根据需要处理它们的点击/更改事件。
然后,在您的代码中,使用 webBrowser 控件的属性将上下文菜单更改为您创建的菜单,或者在 Form_Load 的代码中处理它。
private void Form1Load(object sender, EventArgs e)
{
mainBrowser.ContextMenuStrip = browserCMenu;
}
browserCMenu 将在设计器内部创建,但您也可以从代码创建:
this.browserCMenu = new System.Windows.Forms.ContextMenuStrip(this.components);
// This is the AddRange() command for items.
// You basically create your controls first (buttons, checkboxes, etc), and then assign
// them here, so they are added to your control.
this.browserCMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.copylinkMenuItem,
this.copyMenuitem});
this.browserCMenu.Name = "browserCMenu";
this.browserCMenu.Size = new System.Drawing.Size(128, 48);
请注意,以上是设计器生成的代码。由于您将(很可能)使用 Visual Studio 设计器来完成您的工作,因此您只需执行以下步骤即可:
- 将 ContextMenuStrip 项从工具箱拖到您的表单中。
- 点击“在此处输入”为您的新按钮命名,或点击箭头添加不同类型的控件。
- 然后只需双击您添加的控件(按钮、列表等),处理上下文菜单项的点击事件/chagned 事件,并添加您的代码。
- 通过更改 Web 浏览器上下文菜单项(如上面的 Form1Load() 部分所示)将该上下文菜单指定为 Web 浏览器的上下文菜单。
您还可以查询目标文本的类型,但我不会在这里详细介绍,您可以在 MSDN 上搜索该信息,或在 StackOverflow 上搜索此处,有几篇相关文章。但这将允许您为不同类型的数据右击获得不同的上下文菜单(我个人认为它没有用处)。最好只为所有使用相同上下文菜单项的浏览器控件提供一个标准上下文菜单,这样您的代码就不会因上下文菜单过多而陷入困境/过于复杂。
关于C# webbrowser 控件,更改右键单击选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5611778/