Как указано в msdn о свойстве HtmlSelect.SelectedIndex
Если для свойства Multiple установлено значение true, что указывает на одновременное выделение нескольких элементов, свойство SelectedIndex содержит индекс первого выбранного элемента.
Я использую API SHDocVw.InternetExplorer в моем приложении Vb.Net WinForms, и я пытаюсь получить текст последнего выбранного элемента пользователем, но SelectedIndex не работает для меня в случае множественного выбора HTML.
Здесь мой код
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
Может ли кто-нибудь дать мне знать, как это сделать?
Не получив прямого пути, Чтобы достичь этого, я использовал следующий способ:
1) Сохраняйте выбранные значения в событиях MouseDown и KeyDown.
2) Также добавьте обработчик DropDownElement для своего события onchange в двух вышеупомянутых событиях.
3) Теперь, когда значение изменится, он вызовет метод, по которому добавляется обработчик. Здесь мы можем получить текущие выбранные элементы и рассчитать де-выбранный и последний выбранный элемент.
Я знаю, что это не чище, но работает как шарм.
Grumbler85 правильный; вам нужно свойство SelectedIndices. Это сборник, содержащий индексы на основе нуля всех выбранных в данный момент элементов в элементе управления HTMLSelect.