窗体关闭/显示- c#

本文关键字:显示 窗体 | 更新日期: 2023-09-27 18:05:07

我正在开发我的第一个UI c#程序。我希望得到一些帮助。我的第一个表单包含几个文本框、两个单选按钮和一个Go按钮。如果选中一个单选按钮,则打开一个新的小表单,如果选中另一个单选按钮,则打开一个新的大表单。

当用户点击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();
    }

窗体关闭/显示- c#

在父表单中:

_min.FormClosed += (s1,e1) =>  { this.WindowState = FormWindowState.Maximized; }

在第二个表单上添加事件(您可以订阅现有的表单)。关闭事件,但您可能需要针对您的用例的更具体的事件)。

public event EventHandler UserStoppedEvent;

从你的第一个表单订阅它,做任何你需要的

_min.UserStoppedEvent += (s, e) => {this.WindowState = FormWindowState.Maximized;} 

您需要将ParentForm句柄传递给这些小表单的构造函数。还可以看看这里:http://msdn.microsoft.com/en-us/library/system.windows.forms.control.parent.aspx还有这里:http://www.daniweb.com/software-development/csharp/threads/120120