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

使用数据网格的 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,以便网格将正确的数据绑定到该列,而不是创建新数据。

另一种方法是,如果可以的话,使用强类型数据集,因为它会自动为你的 bool 列创建 CheckBoxColumns 等等......

于 2010-12-13T16:13:31.040 回答