我在用户控件中用Web浏览器开发了一个Outlook添加(自定义任务窗格)。Outlook添加,文本框中,删除 backspace不起作用
当我在网络浏览器的文本框中写东西时,所有的东西在退格或删除按钮旁边工作良好,我不能使用这些键,我是否错过了一些东西?
我在用户控件中用Web浏览器开发了一个Outlook添加(自定义任务窗格)。Outlook添加,文本框中,删除 backspace不起作用
当我在网络浏览器的文本框中写东西时,所有的东西在退格或删除按钮旁边工作良好,我不能使用这些键,我是否错过了一些东西?
好吧,我解决了这个问题,
的问题是,在自定义任务窗格并不总是得到fucos从Outlook。
所以,我每次在所有窗格都有“onclick”的时候发出了一个事件,然后强制窗格处于焦点状态。
原来这是一个很容易解决的问题。
只要写
class MyBrowser : WebBrowser {}
然后使用,而不是.NET一个MyBrowser。
这对我不起作用。 – GreenKiwi 2013-11-14 21:05:10
这是奇怪的。为了确保,我多次尝试了这种方法。它完全没有意义,但仍然没有。 – 2013-11-18 07:21:08
我已经晚了几年晚会,但我设法解决这个问题。解决这个问题的最简单方法是确保对输入字段给予适当的关注,所以您需要能够在加载的任何页面上运行您自己的JavaScript。
我的页面上运行的JavaScript是如下(使用jQuery):
$(document).on("click", function (e) {
// first let the add-in give focus to our CustomTaskPane
window.external.focus();
// then in our web browser give focus to whatever element was clicked on
$(e.target).focus();
});
所述的window.external变量包含来自插件(C#或VB我假定)代码的运行,其被暴露,所以我们可以从网页交互回加载项。
在自定义设置taskpane的的window.external背景下加载代码:聚焦
// event when webBrowser is finished loading document
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
// sets context of window.external to functions defined on this context
webBrowser1.ObjectForScripting = this;
}
和公共方法:
// can be called by the web browser as window.external.focus()
public void focus()
{
this.Focus();
}
这为我工作,我希望它能帮助别人。虽然请注意,如果用户键盘使用选项卡进行导航,但这可能不起作用,但您可以扩展此用例的此代码,或者安全地假定普通Outlook用户将他的手粘在鼠标上。
你究竟是怎么做到的?你可以发布一些代码吗?我有同样的问题,但我没有帮助。 – wpfwannabe 2011-05-19 08:23:06
你能否用一些代码更新你的答案? – Neophile 2016-03-17 16:40:53