【问题标题】:Windows Forms, getting a property from parent formWindows 窗体,从父窗体获取属性
【发布时间】:2008-10-31 10:17:55
【问题描述】:

我有点问题。我在父表单中有一个数据表。我打开一个对话框表单,获取数据表属性并创建一个复选框列表。这将用于导出这些列。但是当我运行应用程序时, 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
}

【问题讨论】:

    标签: windows forms parent mdi children


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      2) 调用 MyForm.ShowDialog(this);

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

      【讨论】:

      • 你能举例说明一下吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-21
      • 1970-01-01
      相关资源
      最近更新 更多