Windows窗体,从父窗体获取属性

问题描述:

我遇到了一些问题。我有一个父表单中的数据表。我打开一个获取datatable属性的对话框窗体并创建一个复选框列表。这将用于导出这些列。但是当我运行该应用程序时,parentform属性为null。我已经尝试在父窗体和对话框窗体中设置它(如果ShowDialog()被调用,我认为这会自动完成)。Windows窗体,从父窗体获取属性

有人可以看看,看看我要去哪里错了吗? 从对话框:

frmParent MyParentForm = (frmParent)this.ParentForm; 
for (int i=0; i<MyParentForm.DataGridTable.Count; i++) 
{ 
    chkListExportItems.Add(MyParentForm.DataGrid.Columns[i].Name,true); 
} 

从父窗体:

frmExports MyForm = new frmExports(); 
MyForm.MdiParent = this; 
if (MyForm.ShowDialog == DialogResult.OK) 
{ 
    MyForm.SelectedItems // Do something 
} 

给一个参考DataGridTable你的对话框形式。你可以在构造函数中传递它。 你应该避免使用Parent/ParentForm并避免投射。

1)“MdiParent”是使用的错误属性。

2)调用MyForm.ShowDialog(this);

3)以模态形式使用“this.Owner”。

+0

你能详细说明一下吗? – 2013-01-26 12:31:44