如何在Web浏览器中将字符串插入组合框



我正在C#中制作一个有几个文本框的winforms应用程序。一个代表姓名,一个代表主题,一个则代表信息。除了网站上的combobox(下拉列表)外,其他一切都正常。

它是这样的:

  1. [带单词的下拉列表]

    1. Dr
    2. Mr
    3. 夫人
    4. 小姐等等
  2. [姓名]输入名称

  3. [主题]在此处输入主题行

  4. [消息]在此处输入消息

我想用程序将我的文本字符串插入下拉列表。我的意思是,如果我在应用程序中键入"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);

但这并不奏效,因为它是一个包含选项的列表,而不是一个文本框。

我想我刚刚得到了一个解决方案。如果我要在我的winforms应用程序中添加一个已准备好名称前缀的组合框,那么请执行以下操作:

HtmlElement hField = webBrowser1.Document.GetElementById("name_prefix");
hField.SetAttribute("selectedIndex", "comboBox1.SelectedIndex");

一旦有了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");
}
}

请参阅John Koerner 的回答

请尝试以下代码而不是

HTMLSelectElement hfield=WebBrowser1.Document.GetElementsByTagName("select");

hfield.value=textbox1.text

HTMLSelectElement hfield=WebBrowser1.Document.GetElementsById("name_prefix");

hfield.value=textbox1.text

注意:"包含mshtml namespacë"。

最新更新