如何获取文本框的值并将其传输到richtextbox?

时间:2012-04-10 19:52:54

标签: c# .net winforms textbox richtextbox

如何获取文本框的值并将其传输到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?

2 个答案:

答案 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填充(出于明显的安全原因)并且仅作为用户的输入(因此我之前的“为什么?”问题) )。