我在C#中创建了一个带有一些文本框的winforms应用程序。 一个用于名称,一个用于主题,一个用于消息。 一切都有效,除了网站上的组合框(下拉列表)。
就是这样:
[包含文字的下拉列表]
[名称] 输入名称
[主题] 在此处输入主题
[信息] 在此处输入消息
我想以编程方式将我的文本字符串插入下拉列表中。我的意思是,如果我在我的应用程序中键入“mr”,它应该找到“mr”然后检查,如果列表项text =“mr”然后继续。 我怎样才能做到这一点? 我尝试用索引来做 - 这有效,但这不是那么用户友好。 索引从0开始,这是我当前的代码:
HtmlElement hField = webBrowser1.Document.GetElementById("name_prefix");
hField.SetAttribute("selectedIndex", "1");
我想要像
这样的内容HtmlElement hField = webBrowser1.Document.GetElementById("name_prefix");
hField.SetAttribute("selectedIndex", textbox1.Text);
但这不起作用,因为它是一个包含选项而不是文本框的列表。
答案 0 :(得分:0)
我想我得到了一个解决方案。 如果我要在winforms应用程序中添加一个名称前缀准备好的组合框,那么请执行以下操作:
HtmlElement hField = webBrowser1.Document.GetElementById("name_prefix");
hField.SetAttribute("selectedIndex", "comboBox1.SelectedIndex");
答案 1 :(得分:0)
获得name_prefix元素后,循环浏览项目,直到找到正确的项目,然后选择它:
var ele = webBrowser1.Document.GetElementById("asdf");
if (ele != null)
{
foreach (HtmlElement child in ele.Children)
{
child.SetAttribute("selected", "false");
if (child.InnerText == "c")
child.SetAttribute("selected", "true");
}
}
答案 2 :(得分:0)
尝试以下代码
HTMLSelectElement hfield = WebBrowser1.Document.GetElementsByTagName(“select”);
hfield.value = textbox1.text
或者
HTMLSelectElement hfield = WebBrowser1.Document.GetElementsById(“name_prefix”);
hfield.value = textbox1.text
注意:“包括mshtmlnamespacë”。