如何使用VB.Net获取最后选择的项目或其在html中的索引多选?

时间:2014-08-21 09:29:27

标签: c# vb.net internet-explorer

在msdn上给出关于HtmlSelect.SelectedIndex属性

  

如果Multiple属性设置为true,表示可以同时选择多个项目,则SelectedIndex属性包含第一个选定项目的索引。

我在我的Vb.Net WinForms应用程序中使用SHDocVw.InternetExplorer API,我试图获取用户最后选择的项目的文本,但在多个HTML选择的情况下,SelectedIndex对我不起作用。

这是我的代码

 Private Sub onMouseDown(ByVal pEvtObj As mshtml.IHTMLEventObj)
    Dim srcElement = pEvtObj.srcElement
    If TypeOf (srcElement) Is IHTMLSelectElement Then
        Dim DropDownElement = CType(srcElement, IHTMLSelectElement)
        Dim elementValue = CType(DropDownElement.item(DropDownElement.selectedIndex), IHTMLOptionElement).text
    End If
End Sub

任何人都可以告诉我怎么做吗?

2 个答案:

答案 0 :(得分:1)

没有得到任何直接的方式,为了达到要求,我使用了以下方式:

1)将所选值存储在MouseDown和KeyDown事件中。

2)还要在DropDownElement中为上面两个上述事件中的onchange事件添加处理程序。

3)现在当值改变时,它将触发添加处理程序的方法。在这里,我们可以获取当前的选定元素并计算取消选择的元素和最后选择的元素。

我知道它不是一种更干净的方式,而是像魅力一样工作。

答案 1 :(得分:0)

Grumbler85是正确的;你想要SelectedIndices属性。它是一个集合,其中包含HTMLSelect控件中所有当前所选项目的从零开始的索引。

HtmlSelect.SelectedIndices Property (MSDN Link)