Combobox присваивание переменной - PullRequest
3 голосов
/ 05 апреля 2011

Если я поставлю:

variableName = namecombobox.selectedItem

или

Dim variablename as type = namecombobox.SelectedIndex

Visual Studio выдает мне ошибку

Опция Strict запрещает преобразования из объекта в строку.

Я могу это исправить, набрав:

variableName = convert.ToString(namecombobox.SelectedItem)

Все ли значения, содержащиеся в комбинированном ящике, автоматически обрабатываются как нестроковые, даже если они являются строковыми значениями (в данном случае «Мужской» и «Женский»), и как правильно назначить значение, выбранное в комбинированном списке, переменная?

Ответы [ 2 ]

2 голосов
/ 05 апреля 2011

Это нормально, свойство ComboBox.Items является коллекцией System.Object. Вы должны использовать метод ToString () элемента, как это делает ComboBox для генерации видимого текста.

 Dim variableName As String = namecombobox.SelectedItem.ToString()

Или используйте CStr (), способ VB.NET.

0 голосов
/ 25 января 2013

Если вы используете это, предполагая, что вы выбираете «Selection1» в поле со списком:

Dim x As Boolean
Dim MyVariable As String = ""

MyVariable = ComboBox1.SelectedItem.ToString()
If MyVariable = "Selection1" Then
  x = True
Else
  x = False

Представьте, что приведенный выше код - это ВАШ код ... Это ПРАВИЛЬНО для выбора строк из ComboBox. Вставьте точку останова в оператор IF, проверяющий «MyVariable» - вы увидите содержимое переменной, если навести указатель мыши на имя переменной. Это быстрый способ просмотра содержимого вашей переменной. Если при наведении курсора на переменную отображается пустая строка ("") или просто ничего, значит, он не поднял ни одного выбранного элемента.

В моем коде выше, если бы я щелкнул элемент, содержащий слова «Selection1», «MyVariable» будет содержать строку «Selection1», а булева переменная «x» также будет иметь значение TRUE.

Если вы получаете ошибки чтения при сравнении переменной, у вас есть проблемы в другом месте вашего кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...