2015-11-03 71 views
0

我通過在Windows嵌入GeckoFX製作所見即所得的HTML編輯器在VB.NET窗體應用程序。
這是代碼:如何使插入符GeckoFX控制可見?

Imports Gecko 
... 
Gecko.Xpcom.Initialize("C:\Program Files (x86)\XULrunner-33.0") 
... 
Dim gBrowser As New GeckoWebBrowser 
TabControl1.SelectedTab.Controls.Add(gBrowser) 
gBrowser.Dock = DockStyle.Fill 
gBrowser.Navigate("about:blank") 

這是我如何做網頁編輯:

gBrowser.Navigate("javascript:void(document.body.contentEditable='true')") 

但之後我做網頁編輯,插入符號顯示不出來,直到我點擊的頁面。
我怎樣才能讓插入符號在導航方法後,插入點右側可見?
該代碼有沒有明顯的效果:

gBrowser.SetInputFocus() 
Dim fm As nsIFocusManager 
fm = Xpcom.GetService(Of nsIFocusManager)("@mozilla.org/focus-manager;1") 
fm = Xpcom.QueryInterface(Of nsIFocusManager)(fm) 
fm.MoveCaretToFocus(gBrowser.Window.DomWindow) 

謝謝。

+1

也許該窗口處於活動狀態,但body元素沒有焦點。我會嘗試獲取body元素並調用它的焦點。 – Tom

+0

嗨,湯姆。感謝您的建議。唉,這段代碼也沒有任何效果:gBrowser.Document.GetElementsByTagName(「body」)(0).Focus() – GreenBear

+1

實際的winforms控件是否有焦點(IE。GeckoWebBrowerControl) - 如果不是你可以嘗試gBrowser。選擇()。另外還有一件事是gBrowser.WebBrowserFocus.Activate(); – Tom

回答

1

隨着WinForms應用程序要記住,有兩個重點,發揮很重要的嵌入式geckofx控制。

爲了設置在WinForm重點geckofx控制:

gBrowser.Select(); 

爲了設置geckofx控制呼叫焦點內的HTML聚焦一個html元件上。例如(其中Body是內容可編輯元素):

gBrowser.Document.Body.Focus();