Закрытие / отображение форм - C # - PullRequest
0 голосов
/ 11 августа 2011

Я разрабатываю свою первую программу на C # для пользовательского интерфейса. Я надеюсь на некоторую помощь. Моя первая форма содержит несколько текстовых полей, две радиокнопки и кнопку «Перейти». Если один переключатель установлен, он открывает новую маленькую форму, если другой установлен, он открывает новую большую форму.

когда пользователь нажимает кнопку go - это мой код -

        this.WindowState = FormWindowState.Minimized;
        int.TryParse(tbHrs.Text, out hours);
        int.TryParse(tbMins.Text, out minutes);
        int.TryParse(tbSecs.Text, out seconds);
        int.TryParse(tbWarn1.Text, out warn1);
        int.TryParse(tbWarn2.Text, out warn2);


        bool Max = rbMax.Checked;
        if (Max == true)
        {
            if (_Max == null || _Max.IsDisposed)
            {
                _Max = new Max(hours, minutes, seconds, warn1, warn2);
            }
            _Max.Show();


        }
        else
        {
            if (_Min == null || _Min.IsDisposed)
            {
                _Min = new Min(hours, minutes, seconds, warn1, warn2);
            }
            _Min.Show();
        }

, поэтому он минимизирует форму, в которую были введены значения, и пропускает значения, чтобы начать обратный отсчет при создании новой формы. В новой форме я хочу, чтобы кнопки паузы, которые работают нормально. Однако я также хочу кнопку остановки / сброса. Поэтому при нажатии кнопки «Стоп / Сброс» я хочу закрыть текущую форму, но затем я хочу вывести первую форму из состояния минимизации - я попробовал закомментированную строку ниже, но она не сработала. Кто-нибудь знает, как я могу показать первую форму пользовательского ввода из состояния минимизации при нажатии кнопки «Закрыть» на второй форме, и еще лучше, если она может сбросить поля на пустые в моей первой форме. Большое спасибо.

    private void MinStop_Reset_Click(object sender, EventArgs e)
    {
        this.Close();
        //ParentForm.Show();
    }

Ответы [ 3 ]

1 голос
/ 11 августа 2011

В родительской форме сделать:

_min.FormClosed += (s1,e1) =>  { this.WindowState = FormWindowState.Maximized; }
1 голос
/ 11 августа 2011

Добавьте событие во второй форме (вы можете подписаться на существующее событие Form.Closed, но вам может потребоваться более конкретное событие для вашего варианта использования).

public event EventHandler UserStoppedEvent;

Подпишитесь на нее из первой формы и делайте все, что вам нужно

_min.UserStoppedEvent += (s, e) => {this.WindowState = FormWindowState.Maximized;} 
0 голосов
/ 11 августа 2011

Вам нужно передать дескриптор ParentForm в конструктор этих маленьких форм. Также посмотрите здесь: http://msdn.microsoft.com/en-us/library/system.windows.forms.control.parent.aspx а также здесь: http://www.daniweb.com/software-development/csharp/threads/120120

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...