2013-05-16 54 views
-1

我有下面的代碼來設置文本的輸入框:爲什麼不這項工作(C# - Web瀏覽器控件)

private void messageToolStripMenuItem_Click(object sender, EventArgs e) 
      { 
       HtmlDocument doc = this.webBrowser1.Document; 
       doc.GetElementsByTagName("input") 
        .GetElementsByName("message_id") 
        [0].SetAttribute("value", "Whats up"); 
      } 

這是該輸入框的信息

<!-- Quick Message --> 
     <br /> 
     <div id="quick-message"> 
      <form action="sendmessage.aspx" method="post" name="sendmessage"> 

      <input type="hidden" name="7e27a05c" value="369dd5604f64ea23be41fe37ac416276" /> 
      <input type="hidden" name="sguid" value="DECBD1FF570BA8D09B642734AA677B8731ABD318F67AF409519BEE228762D38CD62B6F2051F36ADAF50861146F83036C2294FC948945A200DEAE9D6C7A70FA795573066C96A8124F9FD18EB3B8D4C1B983BA81C426D644C6716C067C29FA917943115D5726F7AEFEC7E88C16F8F1FFA78B6A881F37EEA61B8475D148D5CB1D9797495F380612D0D35782C32333526C4D2FE047AD1A8044D808E07C18D190999561A68C205546363F3B624FDB40F65F54187FC89C6327918A3FE595F152C0FD41433C4FB07F0CD69EDB3BE615AE08A48A"/> 

      <input type="hidden" name="autologinid" value="ayxwntt5met1yv0o0o0i5ctj" /> 
      <input type="hidden" name="message_id" value="" /> 
      <input type="hidden" name="u" value="3FF3XX" /> 

      <input type="hidden" value="44696155" name="p_id" /> 

      <input type="hidden" name="reciever" value="sarita_j" /> 
      <input type="hidden" value="44696155" name="profile_idb" /> 
      <input type="hidden" value="48936882" name="usersendtob" /> 
      <input type="hidden" name="i" value="59181062" /> 
      <input type="hidden" name="v" value="13" /> 
      <center> 
       <span class="headline txtBlue size16">Send a Quick Message!</span> 
       <input maxlength="40" name="subject" size="33" type="hidden" value="Hi" /> 
       <center> 
        <textarea class="profile" name="message"></textarea><br /> 
        <input type="submit" class="button norm-green" style="" value="Send Quick Msg" name="sendmessage" /></center> 
      </form> 

但是,當我點擊按鈕沒有任何反應。有任何想法嗎?

+0

你在做一個回傳?你的代碼是服務器端的;沒有回傳,護目鏡什麼都不會做。 –

+0

以及我wana添加文本到按鈕自動點擊框,所以之後,我點擊發送一個快速消息.... @RobertHarvey – IceDawg

+0

@RobertHarvey我不認爲這是ASP.NET,好像他正在嘗試改變在桌面應用中的嵌入式瀏覽器中顯示的文檔。 (也就是說,這大概是80%的猜測,假設是20%,因爲在ASP.NET中使用WebBrowser是沒有意義的) – millimoose

回答

0

爲什麼不喜歡穿越的DOM:

HtmlElementCollection elems = webBrowser1.Document.GetElementsByTagName("input"); 
    foreach (HtmlElement elem in elems) 
    { 

     if (elem.GetAttribute("name")=="message_id") 
     { 
      elem.SetAttribute("value","what's up"); 
     } 
    } 
+0

@ Edper:我如何從文本框中獲取文本將是無文本還是純文本? (對象發送者,EventArgs e) MessageBox.Show HtmlElementCollection elems = webBrowser1.Document.GetElementsByTagName(「input」); foreach(HtmlElement elem in elems) { MessageBox.Show(elem.InnerText); MessageBox.Show(elem.OuterText); } } – IceDawg

+0

@ user2309648對不起,這個延遲的答覆。既然它是文本框的值,而不是元素和內部文本/ html本身,那麼你可以使用elem.GetAttribute(「value」)來代替。如果你想要一對標籤之間的數值,比如

標題

,你可以使用innerHtml或innerText(具有不同的方式),它會給你「The Heading」的值(不帶引號)。 – Edper

+0

@ Edper:感謝您的幫助..當我在消息框中輸入一些文本,例如:Hello World並使用getattribute方法時,它不會在消息框中顯示hello world ..代碼即時通訊使用的是: HtmlElementCollection elems = webBrowser1.Document。的getElementsByTagName( 「輸入」); foreach(HtmlElement elem in elems) { MessageBox.Show(elem.GetAttribute(「value」)); } – IceDawg

相關問題