Member 12324523 Ответов: 1

Как открыть закрыть предыдущую дочернюю форму при нажатии на другую дочернюю форму в mdi с помощью C#


In my application i have one parent form and two child forms for that parent form here my parent form is Form1 and
my child forms are Upload and Reports on clicking upload i need to close reports form and if i click reports i need to close
upload form how can i do this below is my code

<pre lang="c#">private void winAppToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Upload objWA = new Upload();
            objWA.MdiParent = this;
            objWA.Show();
            //objWA.WindowState = FormWindowState.Maximized;
        }

        private void userInfoToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Reports objUI = new Reports();
            objUI.MdiParent = this;
            objUI.Show();
            //objUI.WindowState = FormWindowState.Maximized;
        }


Что я уже пробовал:

как я могу изменить предыдущую дочернюю форму, если я открыл другую дочернюю форму

1 Ответов

Рейтинг:
1

OriginalGriff

Первое, что нужно сделать, это отметить, что вы хотите сохранить ссылки на две формы: переместить objWA и objUI (которые оба плохо названы - "obj"-очень плохой префикс, даже если псевдо-венгерская нотация была рекомендована для C#, а это не так) за пределы методов и в родительский класс MDI form в качестве частных переменных.
Инициализируйте их в null, проверьте наличие null при обработке событий щелчка и выдайте оттуда соответствующие инструкции закрытия. Вам также нужно будет обработать событие закрытия формы:

private Upload formUpload = null;
private Reports formReport = null;
...
private void winAppToolStripMenuItem_Click(object sender, EventArgs e)
    {
    if (formUpLoad != null) return;
    formUpload = new Upload();
    formUpload.MdiParent = this;
    formUpload.FormClosed += formUploadClosed;
    if (formReport != null) formReport.Close();
    formUpload.Show();
    }
private void formUploadClosed(object sender, EventArgs e)
    {
    formUpload = null;
    }
Повторите это для другого от, и вы должны быть хорошо идти.


Member 12324523

но по умолчанию он должен показывать мою родительскую форму и если я нажму кнопку Загрузить он должен показывать форму загрузки и если я нажму кнопку отчеты он должен показывать форму отчетов но по умолчанию после запуска он показывает форму загрузки

OriginalGriff

Затем где-то в вашем приложении вы создаете экземпляр формы: найдите все ссылки на класс загрузки и посмотрите, что вы получите.