目前我正在使用一个在WebBrowser Control中播放ppt
和flash的应用程序。
在WebBrowser中,我可以使用
隐藏上下文菜单this.IsWebBrowserContextMenuEnabled = false;
并使用
捕获键事件this.PreviewKeyDown += new PreviewKeyDownEventHandler(IWebBrowser_PreviewKeyDown);
但是在播放ppt
时,上下文菜单和按键事件都无法正常工作,即我可以看到上下文菜单和箭头键强制ppt
更改幻灯片。
再次播放flash时,上下文菜单可见,我可以处理关键事件。是否有任何其他设置可以在webBrowser中播放任何内容(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中播放的不同控件的图像
显示网页..................
flash在webbrowser中播放.................
ppt在webbrowser中播放.....................
答案 0 :(得分:2)
按照以下步骤删除默认上下文菜单
执行您为隐藏默认上下文菜单所做的工作
this.IsWebBrowserContextMenuEnabled = false;
在您的窗口中添加ContextMenuStrip
控件并给出一个名称(比方说MyMenu)
将浏览器控件的ContextMenuStrip属性设置为MyMenu
现在,无论您在浏览器控件上显示哪种文档类型,它都只显示您的自定义菜单。
希望这有帮助!
一切顺利
答案 1 :(得分:1)
覆盖所有鼠标事件标志Here is an example我希望此示例能为您提供帮助
答案 2 :(得分:0)
您必须在WebControl中捕获PreviewKeyDown事件,在该事件中播放您的ppt / flash并将其升级到内容页面或其他任何内容。