Итак, вот моя ситуация. У меня есть DataGridView, в котором есть два столбца, которые я пытаюсь установить как DataGridViewComboBoxColumns под названием «Получено» и «Задержано».
Смысл этих комбо-боксов - создать выпадающее меню, чтобы выбрать, сколько товаров будет получено / переупорядочено, когда моя компания получит груз. Эта программа будет в основном работать на сенсорном экране без мыши или клавиатуры, поэтому я предпочитаю использовать поля со списком, а не просто запрашивать общий ввод данных пользователем.
Я пытаюсь настроить DataGridView следующим образом:
'Setup of Combo Box Columns
'shipmentData is the name of the DataGridView
Dim receiveCol As New DataGridViewComboBoxColumn()
receiveCol.HeaderText = "Received"
receiveCol.Name = "Received"
shipmentData.Columns.Add(receiveCol)
Dim backorderCol As New DataGridViewComboBoxColumn()
backorderCol.HeaderText = "Backordered"
backorderCol.Name = "Backordered"
shipmentData.Columns.Add(backorderCol)
Приведенный выше код находится в подпункте New()
для создания формы. Я пытаюсь загрузить данные в комбинированные списки следующим образом:
Dim rowNum As Integer = 0
For Each op As OrderPart In OrderData.GetPartList()
If op.AmountOrdered > 0 Then
shipmentData.Rows.Add()
shipmentData.Rows(rowNum).Cells("PartNumber").Value = op.PartNumber
shipmentData.Rows(rowNum).Cells("Description").Value = op.Description
shipmentData.Rows(rowNUm).Cells("Ordered").Value = op.AmountOrdered
For it As Integer = 0 To op.AmountOrdered
CType(shipmentData.Rows(rowNum).Cells("Received"), DataGridViewComboBoxCell).Items.Add(it)
CType(shipmentData.Rows(rowNum).Cells("Backordered"), DataGridViewComboBoxCell).Items.Add(it)
Next
rowNum = rowNum + 1
End If
Next
Теперь, когда я запускаю код, создаются комбинированные списки и их данные добавляются. Однако всякий раз, когда я выбираю значение данных из списка со списком, а затем пытаюсь перейти к другой продаже, я получаю следующую ошибку:
System.ArgumentException: значение DataGridViewComboBoxCell недопустимо.
Почему я получаю эту ошибку и как ее исправить? Я не могу понять, что я делаю неправильно в своем коде.