2009-06-23 4 views
6

Estoy intentando agregar una columna de casilla de verificación a DataGridView en una aplicación de formularios de ventana simple.Ayuda con la adición de la columna de casilla de verificación a DataGridView en forma de ventana

Estoy recuperando algunos datos de una base de datos usando ADO.NET, poniendo en una tabla de datos, y luego estableciendo el datagridview datasource en la tabla de datos. Luego quiero agregar una columna de casilla de verificación como segunda columna. Hasta ahora tengo este código que parece funcionar:

' 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) 

Este código 'funciona' y me sale MyDataGridView para mostrar los datos con la columna de la casilla de verificación en la posición correcta en la tabla.

Sin embargo, por alguna razón, no puedo marcar ninguna casilla de verificación en DataGridView? He intentado muchas cosas (por ejemplo, alterar el estado de solo lectura de la columna) pero no puedo hacer que funcione.

¿Hay algo obvio que me falta?

Respuesta

11

Añadir nueva columna en las propiedades de la DataGridView por:

  1. columnas Selección de propiedades panel y haga doble clic en él
  2. a continuación, seleccione "Agregar ..." botón
  3. luego configure la nueva columna como "Sin consolidar Columna"
  4. darle un nombre y elija su tipo "DataGridViewCheckBoxColumn"
  5. establecer el encabezado que desee y hacer Seguro que "sólo lectura" es no seleccionado.

eso es todo.

(Si el campo de base de datos (SQL Server) es de tipo 'bit' entonces el DataGridView asigna automáticamente al DataGridView como una casilla de verificación en lugar de un cuadro de texto. Sin codificación necesaria.)

+0

Wahid - gracias por tomarse el tiempo para ayudar. Intenté esto y lo hice funcionar muy agradecido por su ayuda. Muchas gracias –

+0

No puedo seleccionar la casilla de verificación. Siempre está sin marcar. – IsmailS

+0

@ Ismail: asegúrese de que "Solo lectura" NO esté seleccionado –

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); 
    } 

}  
+0

Utilizo esto. ¡Funciona! Gracias – swdev

3
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 
0

Prueba esto:

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

he tenido este problema de una vez, pero resuelto. L carga datos del conjunto de datos y llena la vista de cuadro de datos. Estaba configurando la propiedad readOnly del datagridview = True, lo que significa que no puede modificar los datos en el datagridview. Simplemente configure el AllowUserToAddColumn en False y haga readOnly = False y esto funcionará.

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