2016-02-04 7 views
0

У меня есть основное приложение формы, которое является контейнером MDI. Пользователь может нажать кнопку, чтобы всплыла новая форма (а не как ребенок MDI), а затем из этой новой формы, которая появилась, я хочу иметь кнопку, которая создает другую форму в качестве дочернего MDI.Настройка формы как ребенка MDI основной формы?

В главной форме у меня есть:

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

Таким образом, в resSelect формы, выскочили, когда пользователь нажимает кнопку ОК, у меня есть:

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

я получаю следующее сообщение об ошибке :

Error CS0119 'MainForm' is a type, which is not valid in the given context

+0

Какие ошибки вы получаете? Являются ли они компиляцией ошибок времени или ошибок времени выполнения? –

+0

Ошибка CS0119 «MainForm» - это тип, который недопустим в данном контексте. – aNobody

ответ

0

Я только что закончил использовать диалоговое окно для него, поскольку это по сути то же самое : https://www.youtube.com/watch?v=8aDsXyiBLsI

+1

. Подведите итог решения в своем ответе, чтобы будущие пользователи могли извлечь выгоду из ваших результатов. –

1

Проблема, с которой вы сталкиваетесь, заключается в том, что вы пытались получить доступ к типу Mainform, а не к экземпляру. Чтобы устранить эту проблему, вы должны передать экземпляр в 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;