1

DataGridView.DataSource = DataSet.Tableを使用しているときに、DataGridViewのDataGridViewColumnを変更するにはどうすればよいですか?

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?

前もって感謝します。

4

2 に答える 2

0

datagridのAutoGeneratingColumnイベントを使用します。これにより、作成中の列へのハンドルが提供され、必要に応じて列を変更できます。VS2010ヘルプファイルから直接出た以下のコード:

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
于 2010-12-13T16:12:33.533 に答える
0

列を変更することはできません。ComboBoxColumnが必要な場合は、前にDataGridViewに追加する必要があります。バインドする前にコンボボックス列を追加し、そのDataPropertyNameを設定して、グリッドが新しいデータを作成するのではなく、正しいデータをその列にバインドするようにします。

これを行う別の方法は、可能であれば、強い型のDataSetを使用することです。これは、ブール列などのCheckBoxColumnsを自動的に作成するためです。

于 2010-12-13T16:13:31.040 に答える