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

时间:2008-10-31 10:17:56

标签: windows forms parent mdi children

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

有人可以看看我错在哪里吗? 从对话框中:

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
}

2 个答案:

答案 0 :(得分:3)

在对话框表单中引用DataGridTable。您可以在构造函数中传递它。 您应该避免使用Parent / ParentForm并避免强制转换。

答案 1 :(得分:3)

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

2)调用MyForm.ShowDialog(this);

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