vb.net / DataGridView / ComboBoxCell? - PullRequest
       7

vb.net / DataGridView / ComboBoxCell?

0 голосов
/ 09 марта 2011

Я использую vb.net 2010 и winforms и DataGridView.

DataGridView имеет столбец DataGridViewComboBox. Когда я показываю форму с DGV, она показывает эту и пустую сетку, но столбец, содержащий ComboBox, показывает первый элемент в раскрывающемся списке.

Как сделать так, чтобы в ComboBox ничего не отображалось до тех пор, пока он не был нажат и не выбран?

1 Ответ

1 голос
/ 09 марта 2011

Попробуйте установить для свойства combobox selectedindex значение -1 при его инициализации.Это может решить вашу проблему, но когда я делаю то же самое, что вы описали, мой не показывает никаких значений в выпадающем списке, пока я не нажму на него.Вот шаги, которые я предпринял:

1. create a datagridview control.

2. right click on control and add column.

3. add DataGridViewComboBoxColumn

4. right click on control and edit columns.

5. Click on the button for "Items (Collection)".

6. Add some items

Теперь ваш контроль должен вести себя так, как вы просите.Он отлично работает, когда я его запускаю.Если это не так, это может быть ошибка VS2010, так как я использую VS2008.

Редактировать:

Когда вы добавляете свои элементы в коде, просто установите для поля со списком значение Ничего:

Dim cboBrand As New DataGridViewComboBoxColumn
With cboBrand
    .HeaderText = "Brand"
    .Name = "Brand"
    .Width = 300
    .Items.Add("item1")
    .Items.Add("item2")
    .Items.Add("item3")
End With

Me.DataGridView1.Columns.Insert(0, cboBrand)
DataGridView1.Rows.Insert(0, New Object() {Nothing})

или, если вы хотите установить начальное значение, выполнитеэто так:

DataGridView1.Rows.Insert(0, New Object() {"item2"})
...