C# 无法以其他形式将值返回给DataGridView
在我的C# 无法以其他形式将值返回给DataGridView,c#,winforms,datagridview,C#,Winforms,Datagridview,在我的AnalyzerForm项目中有一个名为logDataGridView的datagridview。 为了从项目中名为Form2的另一个中访问其数据源属性,下面的访问字段已定义到AnalyzerForm.Designer.cs: Public System.Windows.Forms.DataGridView _DGV { get {return this.logDataGridView;} set {logDataGridView.DataSource = value;}
AnalyzerForm
项目中有一个名为logDataGridView
的datagridview。
为了从项目中名为Form2
的另一个中访问其数据源
属性,下面的访问字段已定义到AnalyzerForm.Designer.cs
:
Public System.Windows.Forms.DataGridView _DGV
{
get {return this.logDataGridView;}
set {logDataGridView.DataSource = value;}
}
最后,我尝试使用Form2
中名为t
的填充DataTable
:
AnalyzerForm AZ = new AnalyzerForm();
AZ._DGV.DataSource = t;
logDataGridView中不会显示任何内容
!!!
有人知道错误的部分吗?实际上,错误的部分只是重新实例化父窗体,如下所示:
AnalyzerForm AZ = new AnalyzerForm();
必须使用父窗体引用,它负责启动子窗体。可以为子父级定义二级构造函数,并在其内部提供父级窗体对象:
ParentForm pForm;
public childForm(ParentForm FRM)
{
pForm = FRM;
// Then component initializing...
}
最后,父窗体所需的组件(在我的示例中是datagridview)是可能的:
pForm._DVG.DataSource = t;
在get部分返回DataGridView,并在set部分设置数据源。这可能不是一个好主意。不管怎样,在设置数据源之后,您是否尝试过刷新?@Biri:事实上,
刷新
没有任何作用……可能是将数据源设置为null,然后再设置为真实值?顺便问一下,什么是数据源?什么类型的对象?另外,你能检查一下集合后的数据源是什么吗?@Biri:datasource
是一个DataTable
对象,是以正确的方式填充的。。。但即使是空设置和它的重置也没有做什么特别的事情!我认为这是不可能的,因为当你们说new xy()时,你们会得到一个新的对象,它和以前创建的任何其他对象几乎并没有关系。@Biri:事实上是这样的。事实上,第一个parentForm
对象的存在是显而易见的,但是处理它的方法与上面类似。。。谢谢你的贡献。