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

标签 windows forms parent mdi children

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

最佳答案

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

关于Windows 窗体,从父窗体获取属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/253038/

相关文章:

c - C 如何在不更改为 CR LF 的情况下将 LF 输出到标准输出?

windows - 如何在部分上使用 fixups 属性?

c# - 第二种形式显示不正确

forms - ExtJS 为什么 form.getValues() 只返回 "1"而不是 "0"用于复选框状态?

python - 如何在 Python 中查找两个目录?

python - Popen 与冲突的可执行文件/路径

c# - 使用 C# 在本地注销 Windows 用户

javascript - 为什么在文件输入上触发单击事件也会触发表单上的提交事件?

javascript - 如何从 ExtJS 控件引用祖先容器对象?

javascript - 通过其父 ID 选择 ID