C#窗口的null与IsDisposed

 单击窗菜单弹出一个新窗口,再次触发该事件时要求将刚才弹出的窗口处于激活状态而不是再次弹出一个相同窗口
当弹出的窗口关闭后,再触发弹出窗口事件,要求仍弹出窗口的实现

1.建立一个窗体frmMain,并把IsMdiContainer属性设置为True.

2.拉一个菜单控件到窗体frimMain上,

3.新增两个窗体,frmOpen,frmOperator

4.建立菜单 open(Name:openToolStripMenuItem),operator(Name:operatorToolStripMenuItem) ,menu(Name:menuToolStripMenuItem)  

5.要求点击按钮open时,弹出frmOpen 窗体,点击operator时弹出frmOperator

6.设置菜单的 MdiWindowListItem属性为 operatorToolStripMenuItem ,这样当点击open按钮时,menu下会显示frmOpen,                                                             

 public partial class frmMain : Form
    {
        public frmMain()
        {
            InitializeComponent();
        }
        frmOpen open=null;
        private void openToolStripMenuItem_Click(object sender, EventArgs e)
        {

            if (open == null || open.IsDisposed)
            {
                open = new frmOpen();
                open.MdiParent = this;
                open.WindowState = FormWindowState.Maximized;
                open.Show();
            }
            else
            {
                open.Activate();
            }

        }
        frmOperator oprator = null;
        private void operatorToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (oprator == null || oprator.IsDisposed)
            {
                oprator = new frmOperator();
                oprator.MdiParent = this;
                oprator.WindowState = FormWindowState.Maximized;
                oprator.Show();
            }
            else
            { oprator.Activate(); }
        }
    }

注意,当一个窗体关闭时,其资源被释放,但并不为null.

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值