C#窗口的null与IsDisposed

来源:互联网 发布:淘宝可以代付吗 编辑:程序博客网 时间:2024/06/06 12:33

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

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.

原创粉丝点击