Помогите с добавлением столбца флажка в DataGridView в форме окна - PullRequest
6 голосов
/ 24 июня 2009

Я пытаюсь добавить столбец флажка в 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 ]

11 голосов
/ 24 июня 2009

Добавить новый столбец в свойствах DataGridView:

  1. Выбор столбцов из свойств панель и дважды щелкните по ней
  2. затем выберите кнопку " Добавить ... "
  3. затем установите новый столбец как " Unbound Колонка "
  4. Дайте ему имя и выберите его тип " DataGridViewCheckBoxColumn "
  5. Установите нужный заголовок и сделайте убедитесь, что , что " только для чтения " равно , а не выбран.

вот и все.

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

6 голосов
/ 18 января 2011
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
3 голосов
/ 19 января 2010
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);
   }

}    
2 голосов
/ 29 января 2016
Dim checkBoxColumn As New DataGridViewCheckBoxColumn()
checkBoxColumn.HeaderText = ""
checkBoxColumn.Width = 30
checkBoxColumn.Name = "checkBoxColumn"
dataGridView1.Columns.Insert(0, checkBoxColumn)
1 голос
/ 11 ноября 2012

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

0 голосов
/ 07 января 2012

Попробуйте это:

        DataGridViewCheckBoxColumn chkBoxCol = new DataGridViewCheckBoxColumn();
        DataGridView1.Columns.Add(chkBoxCol);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...