none
C# 使用webBrowser1中的控制項 RRS feed

  • 問題

  • private void button1_Click(object sender, EventArgs e)
    {
      webBrowser1.Document.GetElementById("Menu").SetAttribute("selectedIndex", "1");
      webBrowser1.Document.GetElementById("Menu").InvokeMember("onChange");  
    }
    
    private void button2_Click(object sender, EventArgs e)
    {
      webBrowser1.Document.GetElementById("Sub_1").SetAttribute("selectedIndex", "1");
      webBrowser1.Document.GetElementById("Sub_1").InvokeMember("onChange");
    }
    
    private void button3_Click(object sender, EventArgs e)
    {
      webBrowser1.Document.GetElementById("Sub_2").SetAttribute("selectedIndex", "1");
      webBrowser1.Document.GetElementById("Sub_2").InvokeMember("onChange");
    }
    

    用分開賦值可以,但全部寫在一起,卻會出現空值。

    這個是該怎麼解決?

    2011年9月1日 上午 03:08

解答

所有回覆

  • 你得檢查onchange的時候跑了什麼javascript
    2011年9月1日 上午 03:31
  • http://www.post.gov.tw/post/internet/f_searchzone/index.jsp?ID=12105

     

    private void button1_Click(object sender, EventArgs e)
    {
      webBrowser1.Document.GetElementById("city").SetAttribute("selectedIndex", "1");
      webBrowser1.Document.GetElementById("city").InvokeMember("onChange");
    }
    
    private void button2_Click(object sender, EventArgs e)
    {
      webBrowser1.Document.GetElementById("cityarea").SetAttribute("selectedIndex", "1");
      webBrowser1.Document.GetElementById("cityarea").InvokeMember("onChange");
    }
    
    private void button3_Click(object sender, EventArgs e)
    {
      webBrowser1.Document.GetElementById("street").SetAttribute("selectedIndex", "1");
      webBrowser1.Document.GetElementById("street").InvokeMember("onChange");
    
      webBrowser1.Document.GetElementById("Submit").InvokeMember("onMouseDown");
    }
    

    這是把每個控制項分開寫。

    private void button4_Click(object sender, EventArgs e)
    {
      webBrowser1.Document.GetElementById("city").SetAttribute("selectedIndex", "1");
      webBrowser1.Document.GetElementById("city").InvokeMember("onChange");
      webBrowser1.Document.GetElementById("cityarea").SetAttribute("selectedIndex", "1");
      webBrowser1.Document.GetElementById("cityarea").InvokeMember("onChange");
      webBrowser1.Document.GetElementById("street").SetAttribute("selectedIndex", "1");
      webBrowser1.Document.GetElementById("street").InvokeMember("onChange");
      webBrowser1.Document.GetElementById("Submit").InvokeMember("onMouseDown");
    }
    

    如果我把它寫在一起就會查詢不到

    2011年9月1日 上午 08:00
  • 它的下拉是連動的,你得等它跑完才能動下一個
    • 已標示為解答 YRIT 2011年9月1日 上午 09:38
    2011年9月1日 上午 08:31
  • 謝謝,我想明白了。

    我用中間Thread.Sleep(2000);不行

    改用timer去控制時間就可以了。

    2011年9月1日 上午 09:38