C#webbrowser控件,更改右键单击选项

时间:2011-04-10 12:41:42

标签: c# wpf xaml

我需要你的帮助才能在我拥有的webbrowser控件中创建一个右键单击选项。 可能是如果我右键单击链接将打开此选项: 在新标签页中打开 在新窗口中打开 复制链接 请帮我创建一个C#代码和解释,因为我是webbrowser控件的新手。

1 个答案:

答案 0 :(得分:2)

使用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设计器来完成您的工作,您只需执行以下步骤:

  1. 将ContextMenuStrip项从工具箱拖到表单中。
  2. 点击'在此输入'命名新按钮,或单击箭头添加不同类型的控件。
  3. 然后只需双击您添加的控件(按钮,列表等),即可处理上下文菜单项的click事件/ chagned事件,并添加您的代码。
  4. 通过更改Web浏览器上下文菜单项(如上面的Form1Load()部分所示),将该上下文菜单指定为Web浏览器的上下文菜单。
  5. 你也可以查询目标文本的类型,但我不会在这里讨论,你可以搜索MSDN获取该信息,或者在StackOverflow上搜索,有几篇文章就可以了。但是,这将允许您为右键单击的不同类型的数据获取不同的上下文菜单(我发现它不是那么有用)。最好只为所有使用相同上下文菜单项的浏览器控件提供标准上下文菜单,这样您的代码就不会陷入困境/太复杂而且太多上下文菜单。