0

Я могу создать таблицу данных и привязать ее к datagridview. Если возможно, я хочу нечто более сложное. Я хочу ограничить первый столбец значениями от 1 до 12 и вторым столбцом до AM или PM.Как установить столбец сетки данных для выпадающего списка при привязке к таблице

Заранее спасибо.

 mDataTable = GetTable() 

      DataGridView1.DataSource = mDataTable 


Function GetTable() As DataTable 
     ' Create new DataTable instance. 
     Dim table As New DataTable 

     ' Create four typed columns in the DataTable. 
     table.Columns.Add("Hour", GetType(Integer)) 
     table.Columns.Add("AM/PM", GetType(String)) 
     table.Columns.Add("Delete", GetType(Boolean)) 

     For i = 1 To mSchedules.Count 
      table.Rows.Add(SetAMPMHour(mSchedules(i - 1).ScheduleINetHour), SetAMPM(mSchedules(i - 1).ScheduleINetHour), False) 

     Next 

     Return table 
    End Function 
+0

[this] (http://contrivedexample.com/2015/03/14/a-basic-example-of-crud-with-datagridview-in-vb-net/) является общей демонстрацией привязки к datagridview с колонкой combobox. – Crowcoder

ответ

0

Если combobox column будет иметь фиксированные значения, вы можете вручную определить эти значения либо во время разработки или во время выполнения (Althought оба способа требует, чтобы установить AutoGenerateColumns свойства False, прежде чем связать свои данные в сетку).

Если вы хотите сделать это с помощью кода, попробуйте следующее:

DataGridView1.AutoGenerateColumns = False 
Dim hoursCol, timeOfDayCol As New DataGridViewComboBoxColumn 
Dim deleteCol As New DataGridViewCheckBoxColumn 

For i As Integer = 1 To 12 
    hoursCol.Items.Add(i) 
Next 
timeOfDayCol.Items.Add("AM") 
timeOfDayCol.Items.Add("PM") 

hoursCol.DataPropertyName = "Hour" 
timeOfDayCol.DataPropertyName = "AM/PM" 
deleteCol.DataPropertyName = "Delete" 

DataGridView1.Columns.Add(hoursCol) 
DataGridView1.Columns.Add(timeOfDayCol) 
DataGridView1.Columns.Add(deleteCol) 

mDataTable = GetTable() 
DataGridView1.DataSource = mDataTable 

Если вы хотите сделать это во время разработки:

Создать свой Combobox Column ...

ComboBox Column

... установите DataPropertyName на имя столбца DataTable, который будет привязан к этому столбцу GridView, и в Collection определяют значения, которые будут заселять ComboBox ComboBox Column Values

Помните, что, даже если вы определяете значения во время разработки, вы должны установить программно AutoGenerateColumns в False перед установкой источника данных. Кроме того, если вы создадите ColboBox Column во время разработки, вам нужно будет заполнить его значениями String.

+0

Я выбираю версию времени исполнения, она отлично работала. –

 Смежные вопросы

  • Нет связанных вопросов^_^