![](/img/trans.png)
[英]How to disable mailto popup in WebBrowser for Pocket PC .NET CF 3.5?
[英]Disable Context Menu in WebBrowser .NET CF 3.5
我在Windows CE设备应用程序的.NET CF 3.5中使用WebBrowser控件,出于安全原因,需要禁用上下文菜单。 我已经尝试了多种方法,但似乎都不适用于.NET CF 3.5的移动设备:
我尝试过在WebBrowser上放置一个pictureBox,并将其设置为透明。 不幸的是,透明性不起作用,最终变成了浏览器上的白框。
我尝试实现一个新的自定义透明控件来放置在Web浏览器上,类似于this 。
我试过编辑html中的OnContextMenu元素,但是不走运。
我尝试覆盖CreateParams以在浏览器上制作一个透明的PictureBox,这被称为此处的解决方案之一。
网上似乎有许多解决方案,但似乎没有一个适用于带有.NET CF 3.5的Windows CE。 我相信这是因为WebBrowser的实现比完整的.NET 3.5简单得多。 因此,我的问题是:有没有办法禁用WebBrowser控件的上下文菜单?
我没有为特定的控件尝试过它,所以我不知道它是否可以工作,但是您是否尝试过子化浏览器控件的类并拦截和丢弃导致上下文菜单首先出现的消息? 如果必须解决相同的问题,那当然就是我会首先尝试的方法。
如果您觉得自己不足以管理托管WebBrowser,那么通过P /从C#调用本机HTML控件API(不是IWebBrowser2等)实际上并不难。
如果走那条路,那么您可以
要么
到那里去了,都完成了。
编辑:
在这种情况下,可能存在3种复杂程度:
这些可能的答案均无效。 因此,我放弃了尝试隐藏上下文菜单的方法,只是为Navigating事件添加了一个事件处理程序,并取消了导航(如果它与我最初发送给该URL的URL不同)。 它仍然显示上下文菜单,但是单击任何内容都不会将其发送到另一个页面
void webBrowser1_Navigating(object sender, WebBrowserNavigatingEventArgs e) {
//don't let users go anywhere else
if (e.Url != webBrowser1.Url) {
e.Cancel = true;
}
}
.NET CF中的WebBrowser控件实现不包含属性IsWebBrowserContextMenuEnabled
吗?
我在寻找其他内容时碰到了这个非常有趣的博客条目 。 我肯定看起来像它解决了上下文菜单问题(注意:我完全没有测试过)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.