如何在 ac# windows application 、 columns 和 header 中制作?像这个:
是的,我想动态添加行。
我怎样才能做到这一点?
您可以DataTable
使用DataGridView
:
DataTable table = new DataTable();
table.Columns.Add("Name", typeof(string));
table.Rows.Add("Johnnie");
// I assume that you've already created dataGridView (in your form)
dataGridView.DataSource = table;
当您不使用 database 时,您不需要 ADO.NET DataTables。只需将 gridview 添加到您的表单中。选择你的gridview,在属性窗口的底部你会看到两个链接Add Column...
,Edit Columns...
。您可以在此处添加所需的列并设置其类型。
假设您有以下课程:
public class City
{
public string Name { get; set; }
public string Country { get; set; }
public string CountryCode { get; set; }
public string State { get; set; }
}
将 DataGridViewTextBoxColumn 类型的四列添加到带有标题的 GridView 中Country:
,Country Code:
, State:
, City:
(您可以将列设为只读)。然后转到Edit Columns
并指定每列 DataPropertyName。它应该是 City 类的属性名称,将绑定到哪一列。例如,它应该是Name
column 的属性City
。
然后创建城市列表并将其分配给 GridView:
BindingList<City> cities = new BindingList<City>()
{
new City() { Name = "Carros", Country = "France", CountryCode = "FRA" },
new City() { Name = "Barcelona", Country = "Spain", State = "Catalonia" }
};
dataGridView.DataSource = cities;
如果您将使用BindingList
而不是 simple List
,那么您的城市列表上的更改将影响 DataGrid 中的数据(即当您添加或删除城市时):
void ButtonAddCity_Click(object sender, EventArgs e)
{
cities.Add(new City() {
Name = nameTextBox.Text,
Country = countryTextBox.Text,
CountryCode = codeTextBox.Text,
State = stateTextBox.Text
});
}