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

Joe*_*hin 5 forms windows mdi children parent

我有一点问题.我在父表单中有一个数据表.我打开一个对话框表单,获取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);
}
Run Code Online (Sandbox Code Playgroud)

从父表格:

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

Fra*_*ois 4

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