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"。你能帮我这个吗?谢谢

C# 从其他表单填充数据网格

使用鼠标在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