mmsUserCheck是菜单上的一项,单击菜单的时候执行打开字窗口,然后this.mmsWindows.DropDownItems.Add(mmsUserCheck);即在菜单mmsWindows上加上mmsUserCheck,自己这一项private void mmsUserCheck_Click(object sender, EventArgs e)
        {
            if (isExistUserCheck == false)
            {
                UserCheck uc = new UserCheck();
                uc.MdiParent = this;
                uc.Show();
                isExistUserCheck = true;
                this.mmsWindows.DropDownItems.Add(mmsUserCheck);
            }
        }
然后关闭窗口//((MdiAdminMain)this.MdiParent).mmsWindows.DropDownItems.Remove(mmsUserCheck);就是这句注释掉的话,编译器说找不到这一项了,但是如果((MdiAdminMain)this.MdiParent).mmsWindows.DropDownItems.RemoveAt(0);这样写的话关闭的时候,菜单上的也会清除掉.现在的问题是如果写RemoveAt(数字),假如打开了很多不同类型的窗口那也不知道哪个窗口的index是什么了,还是写Remove好点,应该怎么办呢private void UserCheck_FormClosed(object sender, FormClosedEventArgs e)
        {
            if (this.MdiParent != null)
            {
                if (this.MdiParent is MdiAdminMain)
                {
                    ((MdiAdminMain)this.MdiParent).isExistUserCheck = false;
                    //((MdiAdminMain)this.MdiParent).mmsWindows.DropDownItems.Remove(mmsUserCheck);
                }
            }
        }