台灣最大程式設計社群網站
線上人數
2301
 
會員總數:243634
討論主題:188245
歡迎您免費加入會員
討論區列表 >> C# >> c# webbrowser 控制下拉選單
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
c# webbrowser 控制下拉選單
價值 : 10 QP  點閱數:245 回應數:9

樓主

yuyu
門外漢
0 1
76 5
發送站內信

請問:如何在 webbrowser, 控制(點選)下拉選單,以顯示資料.(下拉選單 id:"stationCounty" id="stationCounty" )

https://e-service.cwb.gov.tw/HistoryDataQuery/index.jsp




搜尋相關Tags的文章: [ webbrowser 下拉選單 ] ,
本篇文章發表於2018-09-20 23:13
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

小魚
檢舉此回應
請 Google WebBrowser
本篇文章回覆於2018-09-21 00:52
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

yuyu
檢舉此回應
有,找到眼睛都花掉(年紀大),還是找不到.
本篇文章回覆於2018-09-21 09:31
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

小魚
檢舉此回應
這一篇 參考看看.
本篇文章回覆於2018-09-21 12:52
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

yuyu
檢舉此回應
您好:
1.有測試過您介紹網站還是無法觸動執行.
2.用下列指令能顯示倒欄位但不能觸動執行讀取資料.
HtmlElement element2 = this.webBrowser5.Document.All["select_town_id1"];
if (element2 != null)
{
//下拉框元素个数
int count2 = element2.Children.Count;
// element.Children.
// this.textBox3.Text = Convert.ToString(count);
//获取当前选择的元素索引
object o = element2.GetAttribute("selectedIndex");


//获取当前选择的元素的value及text
if (o != null && !string.IsNullOrEmpty(o.ToString()))
{
int selectIndex = Convert.ToInt32(o);
o = element2.Children[selectIndex].GetAttribute("value");
o = element2.Children[selectIndex].GetAttribute("text");
}
//遍历每个元素
foreach (HtmlElement item2 in element2.Children)
{
// System.Diagnostics.Debug.WriteLine(string.Format("value:{0},text:{1}", item.GetAttribute("value"), item.GetAttribute("text")));
this.textBox9.Text = string.Format("value:{0},text:{1}", item2.GetAttribute("value"), item2.GetAttribute("text"));
if (item2.GetAttribute("text") == "**鄉")
item2.SetAttribute("selected", "selected");

}
本篇文章回覆於2018-09-21 13:31
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
作者回應

yuyu
檢舉此回應
this.webBrowser5.Document.GetElementById("select_city_id1").SetAttribute("value", "V");
能顯示到欄位,但不能觸動執行讀取資料.
本篇文章回覆於2018-09-21 13:46
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

yuyu
檢舉此回應
VBA 有一指令 dispatchEvent 好像是觸動執行讀取資料,不知C#有無此指令.

//-----參考網路程式
For i = 1 To 22
x = IE.Document.all.tags("option").Length - 25
Cells(7, 16) = x
For j = 1 To x
Application.Wait Now + TimeValue("00:00:02")

Application.StatusBar = "??" & i & "?????,??" & 22 - i & "??"


Cells(j + r, 1) = IE.Document.getElementsByTagName("td")(5).innerText
Cells(j + r, 2) = IE.Document.getElementsByTagName("td")(6).innerText
Cells(j + r, 3) = IE.Document.getElementsByTagName("td")(7).innerText
Cells(j + r, 4) = IE.Document.getElementsByTagName("td")(8).innerText
Cells(j + r, 5) = IE.Document.getElementsByTagName("td")(9).innerText

Set evt = IE.Document.createEvent("HTMLEvents")
evt.initEvent "change", True, False
Set lst = IE.Document.getElementById("station")
lst.selectedIndex = j
lst.dispatchEvent evt
Do While IE.readyState <> 4 Or IE.Busy
DoEvents
Loop
Next
r = Range("B1").End(xlDown).Row
Set evt = IE.Document.createEvent("HTMLEvents")
evt.initEvent "change", True, False
Set lst = IE.Document.getElementById("stationCounty")

lst.selectedIndex = i
lst.dispatchEvent evt
Next
本篇文章回覆於2018-09-26 13:39
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
回應

春天
檢舉此回應

事件嗎?

本篇文章回覆於2018-09-26 16:10
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
作者回應

yuyu
檢舉此回應
還是不會!
本篇文章回覆於2018-09-29 21:52
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
回應

小魚
檢舉此回應
網頁有用到iframe嗎?
如果是iframe底下的控制項有可能會找不到.
本篇文章回覆於2018-09-29 23:51
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.