Winforms 按列向DataGridView添加数据
我想在数据网格视图中按列添加数据 我在运行时添加列,然后我想向其中添加数据 也可能是这些列自身调整大小以适应窗口Winforms 按列向DataGridView添加数据,winforms,datagrid,datagridview,runtime,Winforms,Datagrid,Datagridview,Runtime,我想在数据网格视图中按列添加数据 我在运行时添加列,然后我想向其中添加数据 也可能是这些列自身调整大小以适应窗口 例如,如果有10列,则10列应填充窗口;如果有5列,则5列应填充窗口。以下是一个简单示例的代码,用于执行所需操作。它来自一个简单表单的代码,表单上有一个DataGridView控件 public partial class Form1 : Form { public Form1() { InitializeComponent();
例如,如果有10列,则10列应填充窗口;如果有5列,则5列应填充窗口。以下是一个简单示例的代码,用于执行所需操作。它来自一个简单表单的代码,表单上有一个DataGridView控件
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
BindingList<BindingClass> data = new BindingList<BindingClass>() {
new BindingClass { Name = "joe", Surname = "bloggs" },
new BindingClass { Name = "sue", Surname = "bloggs" } };
dataGridView1.DataSource = data;
dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
}
}
public class BindingClass
{
public string Name { get; set; }
public string Surname { get; set; }
}
}
公共部分类表单1:表单
{
公共表格1()
{
初始化组件();
BindingList数据=新建BindingList(){
新绑定类{Name=“joe”,姓氏=“bloggs”},
新绑定类{Name=“sue”,姓氏=“bloggs”};
dataGridView1.DataSource=数据;
dataGridView1.AutoSizeColumnsMode=DataGridViewAutoSizeColumnsMode.Fill;
}
}
公共类绑定类
{
公共字符串名称{get;set;}
公共字符串姓氏{get;set;}
}
}
我已经创建了一个自定义对象用于我的数据-这就是您的列表所在。绑定到DataGridView数据源的列表的所有公共属性都被创建为列,然后可以隐藏不需要的列
在我的示例中,我选择使用绑定列表
而不是列表
——这通常是首选,因为它提供编辑功能,并且可以扩展以支持排序
我还将网格的AutoSizeColumnsMode
设置为Fill
——还有几个其他选项,包括单独设置每列的宽度或填充属性,也可以通过设计器进行设置
我不建议使用
列表视图
,因为它不提供自动数据绑定。下面是一个简单示例的代码,可以实现您想要的功能。它来自一个简单表单的代码,表单上有一个DataGridView控件
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
BindingList<BindingClass> data = new BindingList<BindingClass>() {
new BindingClass { Name = "joe", Surname = "bloggs" },
new BindingClass { Name = "sue", Surname = "bloggs" } };
dataGridView1.DataSource = data;
dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
}
}
public class BindingClass
{
public string Name { get; set; }
public string Surname { get; set; }
}
}
公共部分类表单1:表单
{
公共表格1()
{
初始化组件();
BindingList数据=新建BindingList(){
新绑定类{Name=“joe”,姓氏=“bloggs”},
新绑定类{Name=“sue”,姓氏=“bloggs”};
dataGridView1.DataSource=数据;
dataGridView1.AutoSizeColumnsMode=DataGridViewAutoSizeColumnsMode.Fill;
}
}
公共类绑定类
{
公共字符串名称{get;set;}
公共字符串姓氏{get;set;}
}
}
我已经创建了一个自定义对象用于我的数据-这就是您的列表所在。绑定到DataGridView数据源的列表的所有公共属性都被创建为列,然后可以隐藏不需要的列
在我的示例中,我选择使用绑定列表
而不是列表
——这通常是首选,因为它提供编辑功能,并且可以扩展以支持排序
我还将网格的AutoSizeColumnsMode
设置为Fill
——还有几个其他选项,包括单独设置每列的宽度或填充属性,也可以通过设计器进行设置
我不建议使用
列表视图,因为它不提供自动数据绑定。添加新列时,网格中是否已经有数据?如果是这样,数据是如何到达的,网格是未绑定的还是绑定到数据源的,如果数据源是什么类型的?@DavidHall我在网格中没有任何数据。网格是空的。现在我必须向其中添加一列并向该列添加值。值位于List@DavidHall如果可以在ListView中完成,那么也没问题。我只需要显示数据…谢谢你,好的,所以你只有一个值列表(字符串?)您希望向用户显示,并且永远不会有其他列显示?您希望用户能够编辑数据吗?并且用户能够添加新项目。抱歉,这二十个问题,但是他们帮助您了解建议的正确控件和绑定方法。实际上,从关于缩放列的第二个问题开始,这听起来像您的列表中有时可能有多个项目?当您添加新列时,网格中是否已经有数据?如果有,数据是如何到达的,网格是否未绑定或绑定到数据源的,如果是数据源,则是什么类型?@DavidHall我在网格中没有任何数据。网格是空的。现在我必须向其中添加一列并添加v该列的值。这些值位于List@DavidHall如果可以在ListView中完成,那么也可以。我只需要显示数据…谢谢AdvanceAh ok,那么您只有一个值列表(字符串?)您希望向用户显示,并且永远不会有其他列显示?您希望用户能够编辑数据吗?并且用户能够添加新项目。抱歉,这二十个问题,但是他们帮助您了解建议的正确控件和绑定方法。实际上,从关于缩放列的第二个问题开始,这听起来像您的列表中有时可以有多个项目?