Winform 父子窗体

1.退出系统的判断(mdi)

 public Form1()
        {
            InitializeComponent();
            this.IsMdiContainer = true;//设置有子窗体

        }
       
        private void 修改密码ToolStripMenuItem_Click(object sender, EventArgs e)
        {        

        if (!CheckExistsForms(typeof(mima)))
            {  
            mimamm = new mima();
            mm.MdiParent = this;//指定父为Form1

            mm.StartPosition = FormStartPosition.CenterScreen;//(3)
            mm.Show();

          }
        }

        private void 退出系统ToolStripMenuItem_Click(object sender, EventArgs e)
        {          
            if (this.MdiChildren.Length == 0)//不为0显然开了子窗体
            {
                Application.Exit();
            }
            else
            {
                MessageBox.Show("请先关闭其它业务窗体!!!");
            }
        }

 //判断此窗体是不否已经打开,要是窗口已经打开,则就打它这个开的,不另开一个(mdi)

private bool CheckExistsForms(Type formType)
        {
            foreach (Form f in this.MdiChildren)
            {
                if (f.GetType().Equals(formType))
                {
                    if (FormWindowState.Minimized == f.WindowState)
                        f.WindowState = FormWindowState.Normal;
                    f.Activate();
                    return true;
                }
            }
            return false;
        }

 

3.设置窗口的大小,让它不受其它窗体,特别是最大的影响,还在设置中

把不是全屏的窗体都改为模式(showdialog)

 

4.主窗口的退出

A.自己做的按钮,可能判断CheckExistsForms

B.事件FormClosing它就比较烦点,要是子也加了FormClosing这个事件如,退出判断是否保存数据就要加一个关闭事件的原因的判断

 if (e.CloseReason == CloseReason.MdiFormClosing)
            {
                e.Cancel = true;
                return;
            }

//父关的时候,我做为子,不关

而其它的子窗口没有加 FormClosing事件所以没有判断原因

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值