我在用戶控件中用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