Вопрос по ado.net, vb.net – Помогите с добавлением столбца флажка в DataGridView в форме окна

6

Я пытаюсь добавить столбец флажок в DataGridView в простом приложении формы окна.

Я извлекаю некоторые данные из базы данных с помощью ADO.NET, помещаю их в таблицу данных и затем устанавливаю источник данных datagridview в таблицу данных. Затем я хочу добавить флажок в качестве второго столбца. Пока у меня есть этот код, который, кажется, работает:

' Code here to connect to database
Dim da As New SqlDataAdapter(cmd)
Dim dt As New DataTable
da.Fill(dt)

MainForm.MyDataGridView.DataSource = dt

Dim ChkBox As New DataGridViewCheckBoxColumn

ChkBox.FlatStyle = FlatStyle.Standard
MainForm.MyDataGridView.Columns.Insert(1, ChkBox)

Этот код "работает" и я получаю MyDataGridView, чтобы показать данные со столбцом флажка в правильном положении в таблице.

Однако по какой-то причине я не могу установить ни один из флажков в DataGridView? Я перепробовал много вещей (например, изменил состояние столбца только для чтения), но не смог заставить его работать.

Есть ли что-то очевидное, чего мне не хватает?

Ваш Ответ

6   ответов
1

но я решил ее. L загрузить данные из набора данных и заполнить сетку данных. Я устанавливал свойство readOnlydatagridview = TrueЭто означает, что вы не можете изменить данные вdatagridview, Просто установитеAllowUserToAddColumn Ложь и сделатьreadOnly = False и это будет работать.

3

private void dataGridView1_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
{
   if(dataGridView1.Columns.Count == 13 )
   {
       DataGridViewCheckBoxColumn chkSelect = new DataGridViewCheckBoxColumn();
       {
           chkSelect.HeaderText = "Select All";
           chkSelect.Name = "chkSelect";
           chkSelect.Selected = false;


       }
       dataGridView1.Columns.Insert(13, chkSelect);
   }

}    
Я использую это. Оно работает! Спасибо
11

Choosing Columns from properties panel and double click on it then choose " Add... " button then set the new column as " Unbound Column " Give it a name and choose its type " DataGridViewCheckBoxColumn " Set the header you want and make sure that " read only " is not selected.

вот и все.

(Если поле базы данных (в SQL Server) имеет тип «бит», то представление данных автоматически сопоставляет его с представлением данных как флажок вместо текстового поля. Кодирование не требуется.)

Я не могу установить флажок. Его всегда не проверено.
@ Ismail: убедитесь, что & quot; Только для чтения & quot; НЕ выбран
Единство - спасибо, что нашли время помочь. Я попробовал это, и я получил его, так что очень благодарен за вашу помощь. Большое спасибо
2

Dim checkBoxColumn As New DataGridViewCheckBoxColumn()
checkBoxColumn.HeaderText = ""
checkBoxColumn.Width = 30
checkBoxColumn.Name = "checkBoxColumn"
dataGridView1.Columns.Insert(0, checkBoxColumn)
0

        DataGridViewCheckBoxColumn chkBoxCol = new DataGridViewCheckBoxColumn();
        DataGridView1.Columns.Add(chkBoxCol);
5

Private Sub ADD_Column()

  Dim AddColumn As New DataGridViewCheckBoxColumn

  With AddColumn
    .HeaderText = "ColumnName"
    .Name = "Column Name that will be displayed"
    .Width = 80
  End With

  dgAdmin.Columns.Insert(1, AddColumn)

End Sub

Похожие вопросы