2017-03-03 117 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"); 
      }