2017-03-03 116 views
0

我做了打開按下F1時,谷歌翻譯窗口的程序,該程序的源代碼在這裏:如何在Web瀏覽器控件中選擇文本框?

sites.google.com/site/windowsprogramfortranslation/

我想要的「源」文本框都被選擇(重點)

我嘗試這樣做:

  formMain.Activate(); 

      formMain.panelMain.Enabled = false; 
      formMain.panelMain.Focus(); 
      formMain.panelMain.Select(); 
      formMain.panelMain.Enabled = true; 

      formMain.webBrowserMain.BringToFront(); 


      formMain.webBrowserMain.Select(); 
      formMain.webBrowserMain.Focus(); 

      formMain.ActiveControl = formMain.webBrowserMain; 


if (formMain. WindowState != FormWindowState.Minimized) 
       { 
        Program.DoMouseClick((uint)formMain.PointToScreen(formMain. webBrowserMain.Location).X + 10, (uint)formMain.PointToScreen(formMain.webBrowserMain.Location).Y + 10); 
       } 




      HtmlElement textArea = formMain.webBrowserMain.Document.GetElementById("source"); 

      if (textArea != null) 
      { 
       textArea.Focus(); 
      } 

但它只是有時被選中!

回答

0

試試這個代碼: 這包括在現場注入的自定義JS和調用該函數,對我的作品在一個類似的案件(總是進行在網頁上的操作,它已經完成渲染之後/加載):

private void webBrowser1_DocumentCompleted(object sender, 
     WebBrowserDocumentCompletedEventArgs e) 
      { 
       HtmlElement head = webBrowser1.Document.GetElementsByTagName("head")[0]; 
       HtmlElement scriptEl = webBrowser1.Document.CreateElement("script"); 
       IHTMLScriptElement element = (IHTMLScriptElement)scriptEl.DomElement; 
       element.text = "function trig_focus() { document.getElementById(\"theIdOfInputBox\").focus(); }"; 
       head.AppendChild(scriptEl); 
       webBrowser1.Document.InvokeScript("trig_focus"); 
      }