我遇到了一些问题。我在父表单中有一个数据表。我打开一个对话框表单,获取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
}
有帮助吗?

解决方案

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

其他提示

1)“MdiParent”是错误的财产。

2)调用MyForm.ShowDialog(this);

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top