Как обновить элемент формы, если он изменен с помощью элемента управления веб-браузера?

Я использую VB6 (да, я знаю, что ему 10 лет :), но он работает). Ответы VB.NET также могут работать, поэтому, если вы знаете ответ, пожалуйста, ответьте тоже!

Я «вручную» устанавливаю раскрывающийся список в форме, но «веб-браузер», похоже, не обновляется.

Вот пример

Если вы заметили в форме, в ней есть место, где вас просят заполнить состояние. (например, Калифорния и т. д.). Это похоже на всплывающее окно javascript/DHTML в MSIE (firefox не делает того же, поэтому вам нужно использовать MSIE, так как это то, на что полагается элемент управления веб-браузером). Если я «щелкну» поле «состояние», появится всплывающее окно. Затем я могу сказать, что выберите «CA» для Калифорнии, и он обновит его. (Теперь он говорит «CA»).

Если бы я программно сделал это, я бы сделал что-то вроде:

WebBrowser1.forms(2).elements(13).value = "CA" ' (sets it to 'california')
WebBrowser1.forms(2).elements(13).item(9).selected = true (makes sure it is 'selected')

Однако в элементе управления веб-браузера он по-прежнему выглядит так, как будто ничего не изменилось. (На самом деле это так, т. Е. Если я отправлю форму, она отправит правильную информацию), но она просто не «обновляет» ее.

Есть ли у вас какие-либо идеи, как я могу выполнить «принудительное» обновление (либо программно, либо через какое-либо обновление javascript/dhtml), которое затем правильно «обновит» поле, чтобы показать, что «CA» был выбран?

Большое спасибо!


person user971774    schedule 29.09.2011    source источник


Ответы (1)


Последней версией VB, которую я использовал, была VB3, так что простите мою грамматику VB :)

Если у события изменения есть обработчик, который вы хотите имитировать

WebBrowser1.forms(2).elements(13).item(9).fireEvent("onchange",WebBrowser1.Document.createEventObject())

person Sheng Jiang 蒋晟    schedule 29.09.2011
comment
Вау! Спасибо за ответ, я не был уверен, что получу его из-за уникальности этого вопроса... Хорошо... Я попробовал это (для этого конкретного примера веб-страницы), и, похоже, это не совсем работает ( Я признаю, что не знал о свойстве fireevent и/или о том, как его использовать). Но в любом случае - я сделал это, и, кажется, ничего не происходит. Эквивалентный код, который я использую (для события пожара, который работает без ошибок): WebBrowser1.forms(2).elements(13).value= CA WebBrowser1.forms(2).elements(13).fireEvent (onchange, WebBrowser1.Document.createEventObject()) - person user971774; 30.09.2011
comment
Знаете ли вы, что мне нужно сделать для этого конкретного примера (ссылка выше/пример), чтобы обновить свойство «состояние»? Большое спасибо! - person user971774; 30.09.2011
comment
Нет... похоже, что у выбора нет обработчика onchange, и установка выбранного свойства должна работать, если вы правильно нашли элемент. На странице daftlogic.com/ есть пример, вы можете использовать в качестве ссылки - person Sheng Jiang 蒋晟; 30.09.2011