C# 从其他表单填充数据网格
本文关键字:数据 数据网 网格 填充 表单 其他 | 更新日期: 2023-09-27 17:58:51
我想将我制作的填写表单中的数据添加到包含我的 DataGridView 的另一个表单中。问题是他们看不到彼此。我尝试制作这些数据字段(文本框和组合框(的结构,并制作一个静态列表,我想以另一种形式与表格一起使用。但它仍然不起作用。我有一个表格雕像和一个表格。我试过了
foreach('struct i made in both forms' rs in 'Statue.that static list')
{
-fill table-
}
但它显示错误"无法将类型Statue.registeStruct转换为Table.registreStruct"。你能帮我这个吗?谢谢
使用鼠标在Visual Studio中选择您的组件(我的意思是dataGrid(。然后转到属性列表,并将行"修饰符"从私有更改为公共。不能从另一个窗体访问该数据网格。
假设您使用的是Windows Forms
.
您想使用DataBinding
.
我坚决建议你每DataGridView
有一个BindingSource
,然后公开其DataSource
属性,以便在两者之间共享相同的源。
public class Form1 : Form {
public IList<MyObjectType> DataContext {
get { return (IList<MyObjectType>)myBindingSource.DataSource; }
set { myBindingSource.DataSource = value; }
}
}
public class Form2 : Form {
public IList<MyObjectType> DataContext {
get { return (IList<MyObjectType>)myBindingSource.DataSource; }
set { myBindingSource.DataSource = value; }
}
}
然后,以另一种形式,您将能够在两者之间共享信息。
public class Form3 : Form {
private void onWhateverEventItMIghtBe(object sender, EventArgs e) {
instanceOfForm2.DataContext = instnceOfForm1.DataContext;
}
}
您确实需要在设计器模式下设置数据绑定。
使用向导将PropertyWindow
中的BindingSource.DataSource
属性设置为新DataSource
,以便DataGridView
都将其列设置为所需的列。然后,将DataGridView.DataSource
属性设置为BindingSource
。