Datagrid中的集合项ComboBox C#

时间:2011-07-31 11:42:41

标签: c# winforms datagridview combobox

我想在C#中创建一个datagridview1

有3行(Number,Name and Country)

如果我想在combobox

中提供datagridview1 行中的

(Number,Name and Country)

的标题或说明 下面的

是.........一个选定的组合框下拉列表

Number的组合框有5个选择或5个收集项("1","2","3","4","5")

名称的组合框有5个选择或5个收集项("A","B","C","D","E")

Country of combobox有5个选择或5个收集项("Amerika","England","Indonesia","Australia","India")

你可以帮我怎么做?

1 个答案:

答案 0 :(得分:3)

每列需要是DataGridViewComboBoxColumn.

类型

此列类型会显示各种属性,以便您正确设置列组合框选项。

对于非常简单的情况,您要求您可以执行此类操作(仅限于此处的国家/地区列):

DataGridViewComboBoxColumn col = new DataGridViewComboBoxColumn();
col.HeaderText = "Country";
col.Name = "Country";
col.Items.AddRange("Amerika","England","Indonesia","Australia","India");

dataGridView1.Columns.Add(col);

现在,您可以在网格中找到可用的国家/地区的组合框。

还有许多其他选项可以为您提供更大的灵活性和强大功能。例如,如果您的DataGridView具有包含“ChosenCountry”属性的DataSource,则可以在列和DataSource之间设置绑定。

col.DataPropertyName = "ChosenCountry";

更进一步,您可以为这些国家/地区使用ID,而不是依赖纯文本:

List<Country> countries = new List<Country>();
countries.Add(new Country { Id = 0, Name = "Amerkia" });
countries.Add(new Country { Id = 1, Name = "England" });
// and so on or even better get this from some external store using a query

DataGridViewComboBoxColumn col = new DataGridViewComboBoxColumn();

// Now you can use the CheckBoxColumn datasource:
col.DataSource = countries;
// And you set the Display and value members and the DataPropertyName:
col.DisplayMember = "Name";
col.ValueMember = "Id";
col.DataPropertyName = "CountryId";

除此之外,您还需要提出详细说明确切方案和问题的问题,以获得更具体的答案。