Domanda

Come faccio a modificare il DataGridViewColumn in un DataGridView quando si utilizza DataGridView.DataSource = DataSet.Table?

OleDbConnection connection = new OleDbConnection(...);
OleDbDataAdapter adpCustomer = new OleDbDataAdapter(..);
DataSet dsCustomer = new DataSet();
adpCustomer.Fill(dsCustomer, "customer");
DataGridView dgv = new DataGridView();
dgv.DataSource = dsCustomer.Tables[0];

// TODO: modify columns to use combobox, checkbox etc.. how?

Grazie in anticipo.

È stato utile?

Soluzione

Non è possibile modificare le colonne. Se si desidera un ComboBoxColumn, è necessario aggiungerlo alla DataGridView prima. Aggiungere la colonna casella combinata PRIMA di legare e impostare il suo DataPropertyName così la griglia si legherà i dati corretti per quella colonna, invece di crearne uno nuovo.

Un altro modo per farlo è, se è possibile, di usare una forte tipizzato DataSet, perché creerà automaticamente CheckBoxColumns per le colonne bool, ecc ...

Altri suggerimenti

evento AutoGeneratingColumn Usa del datagrid. Questo vi darà una maniglia alla colonna viene creata e si può alterare la colonna, se necessario. Qui di seguito il codice direttamente dal VS2010 file di Guida:

Private Sub DG1_AutoGeneratingColumn(ByVal sender As Object, ByVal e As DataGridAutoGeneratingColumnEventArgs)
    Dim headername As String = e.Column.Header.ToString()
        If headername = "FirstName" Then
        e.Column.Header = "First Name"
    End If
End Sub
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top