FindStringExact на ComboBox возвращает неверный индекс - PullRequest
0 голосов
/ 22 ноября 2010

У меня есть два ComboBox в приложении WinForm, которые отображают COM-порты, обнаруженные в системе.Они оба связаны с одним массивом, содержащим строки для каждого COM-порта.Массив заполняется вызовом SerialPort.GetPortNames().Я создал новые BindingContexts для ComboBox, чтобы избежать проблемы с общим доступом к одному и тому же источнику данных, в результате чего изменения в одном влияют на другой.

Я пытаюсь выбрать ранее сохраненное значение путем поиска этого значения в ComboBox с помощьюFindStringExact().

Во время работы в отладчике я заметил, что индекс, возвращаемый FindStringExact(), отличался от того, где находится эта строка в исходном массиве.

Например, (взято из непосредственного окна), вот DataSource для ComboBox:

comboBoxController1ComPort.DataSource

{string[0x00000003]}
    [0x00000000]: "COM3"
    [0x00000001]: "COM10"
    [0x00000002]: "COM12"

Я бы подумал, что поиск COM3 вернул бы индекс 0, индекс COM10 1 и индекс COM12 2. Однако,Я получаю разные значения:

comboBoxController1ComPort.FindStringExact("COM3")
0x00000002

comboBoxController1ComPort.FindStringExact("COM10")
0x00000000

comboBoxController1ComPort.FindStringExact("COM12")
0x00000001

comboBoxController1ComPort.FindStringExact("COM1")
0xffffffff

Я не могу понять, почему я получаю индексы, отличающиеся от FindStringExact() от индексов, возвращаемых свойством DataSource.Кто-нибудь может помочь?

Спасибо

1 Ответ

1 голос
/ 22 ноября 2010

Похоже, что элементы отсортированы ...

...