Я строю строку, и код выглядит как
String status = "The status of my combobox is " + comboBoxTest.SelectedText
Я использую WinForm в VS2010
Результат выглядит как
"Состояние моего списка со списком"
Я строю строку, и код выглядит как
String status = "The status of my combobox is " + comboBoxTest.SelectedText
Я использую WinForm в VS2010
Результат выглядит как
"Состояние моего списка со списком"
Я думаю, вы хотите использовать
String status = "The status of my combobox is " + comboBoxTest.Text
Свойство SelectedText из MSDN
Получает или задает текст, выбранный в редактируемой части ComboBox.
а свойство Text из MSDN
Получает или задает текст, связанный с этим элементом управления.
Из документации:
Вы можете использовать свойство SelectedText для извлечения или изменения выбранного текста в элементе управления ComboBox. Однако вы должны знать, что выбор может автоматически изменяться из-за взаимодействия с пользователем. Например, если вы извлекаете значение SelectedText в кнопке Обработчик события Click, это значение будет пустой строкой. Это происходит потому, что выбор автоматически очищается, когда фокус ввода перемещается из комбинированного поля в кнопку.
Когда поле со списком теряет фокус, точка выбора перемещается в начало текста, и любой выделенный текст становится невыбранным. В этом случае получение свойства SelectedText возвращает пустую строку и установка свойства SelectedText добавляет указанное значение в начало текста.
Я думаю, вам не нужно SelectedText
, но вам может понадобиться
String status = "The status of my combobox is " + comboBoxTest.Text;
Я столкнулся с этой проблемой за 5 минут до этого.
Я думаю, что решение (с visual studio 2005):
myString = comboBoxTest.GetItemText(comboBoxTest.SelectedItem);
Прости меня, если я ошибаюсь.
Чтобы получить выбранный элемент, вы должны использовать свойство SELECTEDITEM для comboBox. И поскольку это объект, если вы хотите назначить его строке, вам нужно преобразовать его в строку с помощью метода ToString():
string myItem = comboBox1.SelectedItem.ToString(); //this does the trick
Вот как я бы подошел к этой проблеме, предполагая, что вы хотите изменить текст слова, ярлык
private void comboBoxtest_SelectedIndexChanged(object sender, EventArgs e)
{
var combotext = comboBoxtest.Text;
var status = "The status of my combo box is" + combotext;
label1.Text = status;
}
Попробуй это:
String status = "The status of my combobox is " + comboBoxTest.text;
или попробуйте этот код
String status = "The status of my combobox is " + comboBoxTest.SelectedItem.ToString();
Если вы связываете свой Combobox с чем-то вроде KeyValuePair, со свойствами в конструкторе, например, так:
DataSource = dataSource,
DisplayMember = "Value",
ValueMember = "Key"
поэтому dataSource
имеет тип KeyValuePair...
Вам в конечном итоге придется сделать это...
string v = ((KeyValuePair)((ComboBox)c).SelectedItem).Value;
(У меня была динамическая форма - где c
был типа Control
- поэтому пришлось привести его к ComboBox)