2013-02-23 4 views
0

Я использую этот код для защиты последней части отображения в списке.
Это прекрасно работает, но всякий раз, когда я получаю SelectedText из ComboBox, возвращаем пустую строку.
На самом деле он должен возвращать «Первый» или я ошибаюсь?Неужели .NET ComboBox прослушивается?

comboBox1.Items.Add("First \0 Last"); 
comboBox1.SelectedIndex = 0; 
if (comboBox1.SelectedText == "") MessageBox.Show("Empty string"); 
//Message box shown 

Примечание: Я не ищу решение, чтобы исправить эту

+2

Я ничего о .NET не знаю, но ответ на вопрос о том, что прослушивается всегда будет «сомнительным». – sevenseacat

ответ

3

Это не Жук. Если вы извлекаете значение SelectedText в кнопке Обработчик события Click, это значение будет пустой строкой. Это происходит потому, что выбор автоматически очищается, когда фокус ввода перемещается из комбинированного поля в кнопку.

http://msdn.microsoft.com/en-us/library/system.windows.forms.combobox.selectedtext.aspx

Вы могли бы просто использовать comboBox1.SelectedItem.ToString();

http://msdn.microsoft.com/en-us/library/system.windows.forms.combobox.selecteditem.aspx

0

это всегда лучше использовать SelectedIndex, чтобы выбрать текст, например, comboBox1.Items[comboBox1.SelectedIndex]

Смежные вопросы