Я создаю HTML-редактор WYSIWYG, вставив GeckoFX в приложение Windows Forms в 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)
Спасибо.
Возможно, это окно активно, но элемент тела не имеет фокуса. Я бы попытался получить элемент body и вызвать фокус на нем. – Tom
Привет, Том. Спасибо за предложение. Увы, этот код не имеет никакого эффекта: gBrowser.Document.GetElementsByTagName ("body") (0) .Focus() – GreenBear
Имеет ли фактический контроль winforms фокус (IE. GeckoWebBrowerControl) - если бы вы не могли попробовать gBrowser. Выбрать(). В добавлении другая вещь, котор нужно вызвать будет gBrowser.WebBrowserFocus.Activate(); – Tom