Я пытался включить автозаполнение форм в элементе управления System.Windows.Forms.WebBrowser
.Как включить автозаполнение форм в элементе управления WebBrowser
Internet Explorer предоставляет этот параметр Internet Options->Content->Autocomplete->Use Autocomplete for Forms
. Если это активировано, когда вы начинаете вводить «a» в элемент HTML, он отображает список ваших предыдущих записей, начинающихся с «a» (может быть, «apple» и «android»). Я хочу то же самое в своем элементе управления WebBrowser.
Я применил IDocHostUIHandler
в своем классе и сделал GetHostInfo
, установив флаг DOCHOSTUIFLAG_ENABLE_FORMS_AUTOCOMPLETE
, но флаг, похоже, ничего не делает. Другие флаги, такие как DOCHOSTUIFLAG.DOCHOSTUIFLAG_NO3DBORDER
, работают так, как ожидалось, поэтому я знаю, что вызываются вызовы GetHostInfo
.
Некоторые люди сообщают успеха от установки этого флага, в то время как другие этого не делают: http://microsoft.public.inetsdk.programming.webbrowser-ctl.narkive.com/MSQ6nobe/can-t-get-autocomplete-to-work-in-hosted-webbrowser-control
http://www.44342.com/webbrowser-control-f125-t1436-p1.htm
Я называю ICustomDoc.SetUIHandler(this as IDocHostUIHandler)
в DocumentCompleted
методе моего WebBrowser, так что методы IDocHostUIHandler интерфейса вызываются с помощью MSHTML.
Я полагаю, что это может быть важно, чтобы убедиться, что мое приложение верно читает раздел реестра HKCU\Software\Microsoft\Internet Explorer\Main\Use FormSuggest
, возможно, используя IDocHostUIHandler.GetOptionKeyPath
или IDocHostUIHandler.GetOverrideKeyPath
, как предложили люди в другом месте. Я попытался реализовать их, но я не мог заставить их вызвать вызов.
Я использовал средство Process Monitor, чтобы проверить, какие ключи реестра мое приложение запрашивает, и Use FormSuggest
не запрашивался вообще. Он пытался запросить HKCU\Software\Policies\Microsoft\Internet Explorer\Control Panel\FormSuggest
, но изменение этого ключа не оказало никакого эффекта.
Есть ли что-нибудь еще, что я мог бы сделать, чтобы получить работу Autocomplete? Благодарю.
Вы желая заполнить свой собственный автозаполнения список слов, или просто показать предыдущие значения пользователя набранный специально с помощью IE? – Loathing
@Loathing Я хочу, чтобы те же функции, что и IE, отображали предыдущие входы, которые пользователь сделал. Он мог бы поделиться списком предыдущих значений с IE или нет, в любом случае это будет хорошо. Я не хочу заполнять свой собственный автозаполненный список слов программно. –