WinForms MDI: как показать MdiChild в строке Parent TableLayoutPanel?

Я следую этому руководству по созданию многостраничного приложения в Winform. У моего MdiParent есть

Основная форма IsMdiParent = истина

HomeForm frmHomeForm;
private void HomeIcon_Click(object sender, EventArgs e)
    {
        if(frmHomeForm == null)
        {
            frmHomeForm = new HomeForm();
            frmHomeForm.MdiParent = this;
            frmHomeForm.Show();
        }
        else
        {
            frmHomeForm.Activate();
        }
    }

Если кто-то может помочь, я впервые использовал MDI.


person MrB3NiT0    schedule 16.01.2018    source источник
comment
Вы отлаживали код? Ваш обработчик событий Click вообще вызывался? Невозможно дать хороший ответ на ваш вопрос, если ваш вопрос не включает хороший минимальный воспроизводимый пример, который надежно воспроизводит проблема. Итак, вы можете либо улучшить вопрос, либо сделать небольшую отладку самостоятельно.   -  person Peter Duniho    schedule 16.01.2018
comment
Вы можете объявить свою форму следующим образом: HomeForm frmHomeForm = null;   -  person GuidoG    schedule 16.01.2018
comment
да, когда я отлаживаю, запускается событие щелчка, и я передаю frmHomeForm.show()   -  person MrB3NiT0    schedule 16.01.2018
comment
Есть ли элемент управления в родительской форме MDI, который охватывает всю родительскую форму? Если это так, то все дочерние окна MDI никогда не будут видны, но всегда будут находиться под этим элементом управления.   -  person GuidoG    schedule 16.01.2018
comment
@GuidoG frmHomeForm уже имеет значение null, когда я отлаживаю. Я делаю это явно, но нет никаких изменений ..   -  person MrB3NiT0    schedule 16.01.2018
comment
До строки MdiParent = this тогда не доходит? если вы говорите, что это никогда не меняется   -  person BugFinder    schedule 16.01.2018
comment
да @GuidoG У меня есть TableLayoutPanel .. Я хочу, чтобы мой ребенок отображался во второй строке Как я могу это сделать?   -  person MrB3NiT0    schedule 16.01.2018
comment
вы не можете, так работает MDI. Все дочерние окна MDI могут отображаться только в родительской форме и только в той области родительской формы, которая не закрыта каким-либо другим элементом управления.   -  person GuidoG    schedule 16.01.2018
comment
хорошо, спасибо @GuidoG, я попробую с пустым MdiParent.   -  person MrB3NiT0    schedule 16.01.2018
comment
Это работает нормально, большое спасибо @GuidoG   -  person MrB3NiT0    schedule 16.01.2018
comment
нет проблем, рад, что смог помочь   -  person GuidoG    schedule 16.01.2018
comment
Не включайте решение как часть вопроса. Если вы найдете хорошее решение, опубликуйте его как ответ.   -  person Reza Aghaei    schedule 16.01.2018
comment
@RezaAghaei, ты прав .. вот почему это ответ на звонок: D   -  person MrB3NiT0    schedule 16.01.2018


Ответы (1)


Я пытался показать MdiChild на моем MdiParent, который был охвачен другим элементом управления. Я удаляю контроль над своим MdiParent, и мой MdiChild теперь правильно отображается в пустой области.

person MrB3NiT0    schedule 16.01.2018