Действительно, весьма прискорбно, что вы все еще застряли с Windows XP. Реальная реализация Windows (доступная только в Vista и более поздних версиях) действительно довольно удобна. Я не совсем уверен, что рекомендовать в этом случае. На самом деле я уже рассматривал ту же самую проблему раньше, и просто нет способа заставить нативную реализацию Windows работать с комбинированным списком с набором стилей DropDownList
.
Если вы настроены на получение этой функциональности в Windows XP, то вам придется написать свою собственную реализацию в коде, что гарантированно будет ужасно, извините. Как вы обнаружили, свойство SelectedText
не влияет на комбинированный список с набором стилей DropDownList
. Вам нужно будет добавить элемент со значением «Выбрать элемент», убедиться, что он выбран по умолчанию, а затем удалить этот элемент из списка после того, как пользователь сделает свой первый выбор.
Возможно, я бы порекомендовал вам использовать встроенную поддержку баннеров-подсказок там, где она доступна (когда приложение работает в Vista или более поздней версии), и прибегать к пользовательской реализации только тогда, когда это абсолютно необходимо (в XP) .
Но если бы это был я, я бы решил эту проблему и использовал бы другой подход. Вот пара идей:
Подход бедняка, использованный задолго до того, как были изобретены эти новомодные «баннеры-подсказки», заключается в простом размещении элемента управления Label
рядом с выпадающим списком. В этой метке вы можете отобразить любой необходимый текст инструкции. Это может быть не так гладко или элегантно, но так же функционально.
Просто установите pre-select значение по умолчанию, которое пользователь, скорее всего, выберет в большинстве случаев. Хитрость с комбинированным списком, установленным как DropDownList
, заключается в том, что после выбора одного из элементов в списке пользователь не сможет отменить выбор . То есть они не могут очистить существующий выбор, не выбрав новый элемент из списка. (Конечно, вы можете сделать это программно, но это не имеет значения в этом случае.) Поэтому, если вы предварительно выберете значение по умолчанию, будет очевидно, что они должны делать (выберите один), и они никогда не смогут отмените выбор там, где он снова неочевиден.
Я думаю, что почти во всех случаях есть разумное значение по умолчанию. Но даже там, где их нет (скажем, «Выберите свой пол: мужской / женский»), вы можете просто выбрать один или другой в качестве значения по умолчанию, и пользователи будут достаточно сообразительны, чтобы изменить его, если он неправильный для них. Вот как я делаю это во всех моих приложениях.
Единственный способ предварительно выбрать значение в DropDownList
, конечно же, - через код. Используйте что-то вроде следующего, чтобы выбрать первый элемент в списке:
myComboBox.SelectedIndex = 0