我想将填写表格中的数据添加到包含我的DataGridView的另一个表单中。问题是他们没有看到对方。我尝试制作这些数据字段(文本框和组合框)的结构,并创建一个静态列表,我希望在表格中使用另一种形式。但它仍然无法奏效。 我有一张表格雕像和一张表格。我试过了
foreach('struct i made in both forms' rs in 'Statue.that static list')
{
-fill table-
}
但它显示错误"无法将类型Statue.registeStruct转换为Table.registreStruct"。你能帮帮我吗? 感谢
答案 0 :(得分:0)
使用鼠标在Visual Studio中选择您的组件(我的意思是dataGrid)。然后转到属性列表,并将“Modifiers”行从private更改为public。不是您可以从其他表单访问该dataGrid。
答案 1 :(得分:0)
假设您正在使用Windows Forms
。
您想使用DataBinding
。
我坚定地建议您每BindingSource
有一个DataGridView
,然后公开其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;
}
}
您确实需要在设计器模式下设置数据绑定。
使用向导将BindingSource.DataSource
中的PropertyWindow
属性设置为新的DataSource
,以便DataGridView
将列设置为您想要的列。然后,将DataGridView.DataSource
属性设置为BindingSource
。