使用c#web浏览器从只读输入获取值
我有web浏览器控件c#Win表单。我无法从只读输入元素获取值,它返回null“” 请告诉我如何在这个只读元素中获取文本 它在innerHml中返回以下内容:使用c#web浏览器从只读输入获取值,c#,winforms,browser,C#,Winforms,Browser,我有web浏览器控件c#Win表单。我无法从只读输入元素获取值,它返回null“” 请告诉我如何在这个只读元素中获取文本 它在innerHml中返回以下内容: "<LABEL>დასახელება ან სახელი, გვარი</LABEL> <INPUT id=ctl00_ContentPlaceHolder1_txtBuyerName class=inactive_input title=\"მაქსიმალური სიმბოლოების რაოდენობა
"<LABEL>დასახელება ან სახელი, გვარი</LABEL> <INPUT id=ctl00_ContentPlaceHolder1_txtBuyerName class=inactive_input title=\"მაქსიმალური სიმბოლოების რაოდენობა 90\" name=ctl00$ContentPlaceHolder1$txtBuyerName readOnly value=\"ცოტნე მემანიშვილი\"> "
”დასახელება ან სახელი, გვარი "
我想得到这个“ცოტნე მემანიშვილი“
谢谢您是否尝试过此文本输入:
txtCompanyName.Text = txtBuyerName.Text;
或者,对于隐藏的输入:
txtCompanyName.Text = txtBuyerName.Value;
您可以使用它,使用返回
HtmlElementCollection
的GetElementsByTagName
,然后像这样获取第一个子项:
HtmlElementCollection elmnt = browser.Document.GetElementById("ctl00_ContentPlaceHolder1_txtBuyerName").GetElementsByTagName("value");
txtCompanyName.Text = elmnt[0].InnerText;
向我们展示您已经尝试过的内容。我尝试过以下内容:var\u ServerCompanyNumber=webBrowser1.Document.GetElementById(“ctl00\u contentplaceholder 1\u txtbuername”);txtCompanyName.Text=\u ServerCompanyNumber.InnerText;@Acid:这是两行代码。哪一行失败了?是
\u ServerCompanyNumber
你期望的吗?它没有。Text选项你应该使用命名标准,因为txt指的是一个文本框。我编辑了我的答案。@FrancisP:我想你误解了上下文问题的关键。没有txtbuername
作为TextBox
。他在厚客户端应用程序上使用web浏览器控件来访问网页。网页在服务器端使用ASP.NET这一事实对他客户端使用呈现的标记并不重要。@Acid:对不起,我从这个角度做得不多。我通常是这样做的编写服务器端的东西。我想我可以修改代码,但我不能给出一个具体的答案。(也要接受问题不在您给定的上下文范围内的可能性,例如值是否由JavaScript填充,而WebBrowser
控件是否没有执行,等等。)