-1

如何在 ac# windows application 、 columns 和 header 中制作?像这个:在此处输入图像描述

是的,我想动态添加行。

我怎样才能做到这一点?

4

2 回答 2

1

您可以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;
于 2012-11-18T10:45:18.863 回答
1

当您不使用 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 类的属性名称,将绑定到哪一列。例如,它应该是Namecolumn 的属性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
    }); 
}
于 2012-11-18T10:55:01.653 回答