将表单设置为主窗体的MDI子级?

时间:2016-02-04 05:54:26

标签: c# .net visual-studio mdi mdiparent

我有一个主表单应用程序,它是一个MDI容器。用户可以按一个按钮弹出一个新表单(而不是MDI子),然后从弹出的这个新表单中,我希望能够有一个按钮,创建一个不同的表单作为MDI子。

在主要表格中我有:

ResSelectForm resSelectForm = new ResSelectForm();
resSelectForm.Show();

因此,在弹出的resSelect表单中,当用户按下OK按钮时,我有:

ImageForm imageForm = new ImageForm();
imageForm.MdiParent = Mainform; // doesn't work
imageForm.Show();

我收到以下错误:

  

错误CS0119'MainForm'是一种类型,在给定的上下文中无效

2 个答案:

答案 0 :(得分:1)

您遇到的问题是您尝试访问ResSelectForm类型而不是其实例。要解决此问题,您必须将实例传递给ResSelectForm resSelectForm = new ResSelectForm(this); 构造函数,如下所示:

ResSelectForm

然后在private Mainform _mainform; //Variable to use throughout the class public ResSelectForm(Mainform mainform) { _mainform = mainform; } 构造函数中执行此操作:

Mainform

最后,只要您需要访问imageForm.MdiParent = _mainform; ,您就可以访问该变量,在您的情况下如下:

vh

答案 1 :(得分:0)

我最后使用了一个对话框,因为它基本上是相同的: https://www.youtube.com/watch?v=8aDsXyiBLsI