1

我使用 aDataGridView查看和编辑我的 PostgreSQL 数据库中的数据,效果很好。Control我想通过选择输入数据的权利使它对用户更加友好。具体来说,我想ComboBox在列中创建一个让用户快速搜索和选择一个值。

为此,我认为我需要该EditingControlShowing事件来填充组合框。但是,我得到的列是 type DataGridViewTextBoxColumn,所以对应e.Control的是 aTextBox而不是 a ComboBox

我从不初始化这些列,因为它们来自数据库中的视图。如何将列强制转换/初始化为DataGridViewComboBoxColumn

这就是我填充我的方式DataGridView

dgView.DataSource = getView();

getView()返回 aDataTable可以从NpgsqlDataAdaper.

4

2 回答 2

1

由于您想使用 a 以外的其他内容,DataGridViewTextBoxColumn因此您需要自己设置AutoGenerateColumnsfalse实际定义列。定义它们时,DataGridViewComboBox为适当的字段选择一列。

这可以在代码中或在设计器中完成,根据您的问题,我认为您应该能够简单地通过设计器来完成。

于 2013-07-02T12:09:03.757 回答
0

您应该分两步完成。1. 首先(如 Michael 所述),您应该将 AutoGenerateColumns 设置为 false,然后使用 datagrid 视图列选项(在属性中)创建所需的列 2. 然后您应该遍历记录并将适当的值分配给适当的列。

如果您在网格视图中显示数百条记录,则应考虑使用服务器端分页。

于 2013-07-02T12:12:33.537 回答