2011-09-29 50 views
0

我正在使用VB6(是的,我知道這是10歲:),但它的工作原理)。 VB.NET的答案也可以工作,所以如果你知道答案,請回答!如何通過網頁瀏覽器控件更改「表單元素」?

我是「手動」設置窗體中的下拉框,但「瀏覽器」似乎沒有更新。

Here's an example

如果在形式的通知,它有它要求你填寫的狀態的地方。 (即,加州等)。它看起來像MSIE中的javascript/DHTML彈出框(firefox不會這樣做,所以你需要使用MSIE,因爲這是webbrowser控件所依賴的)。如果我在「狀態」字段上點擊,會出現一個彈出框。然後我可以說爲加利福尼亞州選擇了「CA」,並更新它。 (現在它說「CA」)。

如果我progrmatically做到這一點,我會做這樣的事情:

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') 

但是 - WebBrowser控件內 - 它仍然出現彷彿一切都沒有改變。 (實際上它有,即,如果我提交表單,它會提交正確的信息),但它不會「更新」它。

你有什麼想法我可以做一個「強制」刷新(編程或通過一些javascript/dhtml刷新),然後將正確'更新'字段以顯示「CA」已被選中?

非常感謝!

回答

0

的最後一個VB版我所用VB3所以原諒我的VB語法:)

如果更改事件有要模擬

WebBrowser1.forms(2).elements(13)的處理程序.item(9).fireEvent(「onchange」,WebBrowser1.Document.createEventObject())

+0

哇!感謝您的迴應,我不確定是否會因爲這個問題的獨特性而得到一個... 好的...我試過(對於這個特定的網頁示例),它似乎並不「相當「的工作(我承認我不知道這些財產和/或如何使用它)。但無論如何 - 我已經這樣做了,似乎沒有任何事情發生。 我使用的等效代碼(for fireevent,它的工作原理沒有錯誤)是: WebBrowser1.forms(2).elements(13).value =「CA」WebBrowser1.forms(2).elements(13 ).fireEvent(「onchange」,WebBrowser1.Document.createEventObject()) – user971774

+0

你知道我需要爲這個特定的例子(上面的鏈接/例子)來獲取'state'屬性來更新嗎?非常感謝! – user971774

+0

不......它看起來像選擇沒有onchange處理程序,並且設置選定的屬性應該工作,如果您找到正確的項目。在http://www.daftlogic.com/information-programmatically-preselect-dropdown-using-javascript.htm上有一個示例,您可以將它用作參考 –

相關問題