我遇到了一些问题。我在父表单中有一个数据表。我打开一个对话框表单,获取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
}
答案 0 :(得分:3)
在对话框表单中引用DataGridTable。您可以在构造函数中传递它。 您应该避免使用Parent / ParentForm并避免强制转换。
答案 1 :(得分:3)
1)“MdiParent”是错误的使用属性。
2)调用MyForm.ShowDialog(this);
3)以模态形式使用“this.Owner”。