Я нахожу ваш текст немного неясным и противоречивым относительно того, что на самом деле неправильно и желательно. Надеюсь, вот что вы ищете.
Вы уже получили данные как DataSet
с именем dataset
. Здесь, имейте в виду, вы пропускаете ValueMember
, поэтому давайте предположим, что вы только DisplayMember
.
Все, что вам нужно сделать, это:
' ToolStripComboBox1.ComboBox.ValueMember = "ID" ' you'd use it, if you wanted a ValueMember
ToolStripComboBox1.ComboBox.DisplayMember = "name"
ToolStripComboBox1.ComboBox.DataSource = dataset.Tables(0)
Если вы хотите выбрать предопределенный элемент:
ToolStripComboBox1.ComboBox.SelectedIndex = 3
Если вы хотите получить выбранный элемент:
Dim StrSelected as String
StrSelected = ToolStripComboBox1.ComboBox.GetItemText(ToolStripComboBox1.ComboBox.SelectedItem)
Если источник AutoComplete
создает проблемы,вы, вероятно, не хотите устанавливать:
ToolStripComboBox1.AutoCompleteSource = AutoCompleteSource.ListItems
Но у меня возникает ощущение, что вы запутались и вам на самом деле ничего не нужно, связанного с AutoComplete
, так как вы также установили:
ToolStripComboBox1.AutoCompleteMode = AutoCompleteMode.None
... что противоречит "показать из предложенного списка ключевых слов". Вот почему я изначально думал, что вы на самом деле ничего не видите в своем ComboBox
, потому что вы не указали DisplayMember
и DataSource
.
Если вы хотите включить элемент значения,сначала включите его в SQL-запрос:
SearchQuery = "select ID,name from pis.roles"
Затем раскомментируйте строку выше с элементом Value, и она будет загружена (без видимого эффекта).