7

我有点问题。我在父表单中有一个数据表。我打开一个对话框表单,它获取数据表属性并创建一个复选框列表。这将用于导出这些列。但是当我运行应用程序时, parentform 属性为空。我已经尝试在父窗体和对话框窗体中设置它(我假设如果调用 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
}
4

2 回答 2

4

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

于 2008-10-31T10:23:53.167 回答
4

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

2) 调用 MyForm.ShowDialog(this);

3)在模态表单中使用“this.Owner”。

于 2008-10-31T10:41:54.800 回答