如何获取文本框的值并将其传输到richtextbox?
我创建了一个Windows应用程序表单,其中包含button1,richtextbox和webbrowser(设置为facebook。)
我想要这个按钮1,如果点击它,它将复制在facebook.com的注册表格中输入的值,然后将其粘贴到richtextbox。
这些是文本框的ID。
“名字”
“姓氏”
“reg_email__”
“reg_email_confirmation__”
“reg_passwd__”
“性”
“birthday_month”
“birthday_day”
“birthday_year”
如何以编程方式获取在facebook文本框中键入的值,然后将它们传输到richtextbox?
答案 0 :(得分:0)
假设您正在使用WinForms
,则可以使用WebBrowser
控件的Document
属性。它返回HtmlDocument
类型的对象。 HtmlDocument
反过来有一个方法GetElementById
返回HtmlElement
类型的对象。 OuterHtml
属性最终包含有关文本框的信息。使用Regex
表达式,您可以提取所需的信息
HtmlElement tb = webBrowser1.Document.GetElementById("firstname");
string outerHtml = tb.OuterHtml;
// Yields a text which looks like this
// <INPUT id=firstname class=inputtext value=SomeValue type=text name=firstname>
string text = Regex.Match(outerHtml, @"value=(.*) type=text").Groups[1].Value;
// text => "SomeValue"
我希望能够访问HTML-DOM对象模型;但它似乎隐藏在c#中。
编辑:
ComboBoxes会产生不同类型的信息。请注意,我在这里使用InnerHtml
。
HtmlElement cb = webBrowser1.Document.GetElementById("sex");
string innerHtml = cb.InnerHtml;
// Yields a text which looks like this where the selected option is marked with "selected"
// <OPTION value=0>Select Sex:</OPTION><OPTION value=1>Female</OPTION><OPTION selected value=2>Male</OPTION>
Match match = Regex.Match(innerHtml, @"<OPTION selected value=(\d+)>(.*?)</OPTION>");
string optionValue = match.Groups[1].Value;
string optionText = match.Groups[2].Value;
答案 1 :(得分:0)
你是否要求有人为你编写程序?怀疑会发生。
所以,忽略了“为什么?”的明显问题,我会给出一些指示。 首先,查看您所在页面的查看源。有时可以更容易(使用固定格式 - 特别是具有固定和唯一名称的文本框)以html源作为文本进行扫描,并使用你想要的名字。如果文本框在构建时没有填充(即值不在视图源中),那么您可能需要通过DOM并单独访问控件。
根据您访问此页面的方式和时间,您可能会发现这些字段根本没有被FB填充(出于明显的安全原因)并且仅作为用户的输入(因此我之前的“为什么?”问题) )。