目前,我正在使用的应用程序,发挥ppt和闪存在WebBrowser控制。
在WebBrowser中,我可以通过以下方法隐藏上下文菜单
this.IsWebBrowserContextMenuEnabled = false;并通过以下方法捕获关键事件
this.PreviewKeyDown += new PreviewKeyDownEventHandler(IWebBrowser_PreviewKeyDown);但是在播放ppt时,上下文菜单和按键事件都不能正常工作,也就是说,我可以看到上下文菜单和箭头键迫使ppt更改幻灯片。
同样,在播放闪存时,上下文菜单是可见的,我可以处理键事件。在HTML中播放的任何东西( PPT、Flash、PDF)是否还有其他设置可以相同?
编辑:1这里是我现有的代码
class IWebBrowser : WebBrowser
public IWebBrowser(RegionOptions options)
{
try
{
this.Width = 600;
this.Height = 400;
this.IsWebBrowserContextMenuEnabled = false;
this.ScrollBarsEnabled = false;
this.ScriptErrorsSuppressed = true;
this.WebBrowserShortcutsEnabled = false;
this.AllowNavigation = true;
CreateContextMenu();
this.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(IWebBrowser_DocumentCompleted);
this.PreviewKeyDown += new PreviewKeyDownEventHandler(IWebBrowser_PreviewKeyDown);
}
catch (Exception ex)
{
log.Error("IWebBrowser - ctor ", ex);
}
}
private void CreateContextMenu()
{
ContextMenuStrip myContextMenu = new ContextMenuStrip();
this.ContextMenuStrip = myContextMenu;
ToolStripMenuItem myFirstTooltip = new ToolStripMenuItem();
ToolStripMenuItem mySecondTooltip = new ToolStripMenuItem();
ToolStripMenuItem myThirdTooltip = new ToolStripMenuItem();
myFirstTooltip.Text = "Item One";
mySecondTooltip.Text = "Item Two";
myThirdTooltip.Text = "Item Three";
myContextMenu.Items.Add(myFirstTooltip);
myContextMenu.Items.Add(mySecondTooltip);
myContextMenu.Items.Add(myThirdTooltip);
}webbrowser中不同控件的上下文菜单图像
显示网页.

在网页浏览器中播放的闪光灯.

在网页浏览器中播放的ppt .

发布于 2014-09-29 06:54:19
覆盖所有鼠标事件标志Here is an example,我希望这个示例能帮助您
发布于 2014-09-26 13:38:24
按照以下步骤删除默认上下文菜单
ContextMenuStrip控件并给出一个名称(比方说MyMenu)现在,无论您在浏览器控件上显示的文档类型是什么,它都将只显示您的自定义菜单。
希望这能帮上忙!
万事如意
发布于 2014-09-26 13:44:41
您必须在正在播放ppt/flash的PreviewKeyDown中捕获WebControl事件,并将其提升到内容页面或其他任何地方。
https://stackoverflow.com/questions/25884830
复制相似问题