-2

你如何获取他们的文本框的值并将它们传输到richtextbox?

我创建了一个包含 button1、richtextbox 和 webbrowser(设置为 facebook)的 Windows 应用程序表单。

我想要这个按钮 1,如果单击它,它将复制在 facebook.com 的注册表单中键入的值,然后将其粘贴到richtextbox。

这些是其文本框的 ID。

“名字”
“姓氏”
“reg_email__”
“reg_email_confirmation__”
“reg_passwd__”
“sex”
“birthday_month”
“birthday_day”
“birthday_year”

您如何以编程方式获取在 facebook 文本框中输入的值,然后将它们传输到 Richtextbox?

4

2 回答 2

0

假设您正在WinForms使用该WebBrowser控件的Document属性。它返回一个类型为 的对象HtmlDocumentHtmlDocument反过来有一个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# 隐藏。


编辑:

组合框产生不同类型的信息。请注意,我在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;
于 2012-04-10T20:30:59.323 回答
0

您是否要求有人为您编写程序?怀疑会发生这种情况。

所以,忽略“为什么?”这个明显的问题,我会给出一些指示。首先,查看您感兴趣的页面的查看源代码。有时(使用固定格式 - 尤其是具有固定和唯一名称的文本框)将 html 源代码作为文本扫描并使用你想要的名字。如果在构建时没有填充文本框(即值不在视图源中),那么您可能必须通过 DOM 并单独访问控件。

根据您访问此页面的方式和时间,您可能会发现这些字段根本没有被 FB 填充(出于明显的安全原因),并且仅作为用户的输入(因此我之前的“为什么?”问题)。

于 2012-04-10T20:33:45.013 回答