要实现的是在一个窗体关闭时,把另外一个窗体中的菜单中的toolstripmenuitem的checked给修改了~写了代码,实现不了。
但是在unshowoverviewtitle()这个方法中加了MessageBox发现是有消息框弹出来的~但是属性却是修改不了很奇怪。。
     这是窗体OverView中的代码~  
       private void OverView_FormClosed(object sender, FormClosedEventArgs e)
        {
            MainWindow fm = new MainWindow();
            fm.unshowoverviewtitle();
        }
      修改checked。。
       public void unshowoverviewtitle()
        {
            this.overeyeToolStripMenuItem.Checked = false;
        }     请高手指点下刚学的C# 没一个月

解决方案 »

  1.   

    你这两行代码是创建一个新的实例
    MainWindow fm = new MainWindow();
      fm.unshowoverviewtitle();
    MainWindow类窗口并不是你原来那个窗体,而是你新创建的一个实例,你应该在打开那要关闭的窗体时把菜单窗体的实例传给关闭窗体才行,关闭时
    private void OverView_FormClosed(object sender, FormClosedEventArgs e)
      {
      fm.unshowoverviewtitle();
      }
    就行了
      

  2.   

    在主窗口调用 OverView 时就写好
    OverView fov = new fov();
    fov.Show();fov.FormClosed += (obj, args) =>
    {
        this.overeyeToolStripMenuItem.Checked = false;
    };
      

  3.   

    我给你写了个简单的事件处理的代码,就是在form2关闭后form1的标题改变,就像你的菜单改变一样,代码如下:form1代码: Form2 frm = new Form2();        public Form1()
            {
                InitializeComponent();
            }        private void button1_Click(object sender, EventArgs e)
            {
                frm.Show();
                frm.FormClosed += new FormClosedEventHandler(frm_FormClosed);
            }        void frm_FormClosed(object sender, FormClosedEventArgs e)
            {
                this.Text = "form2已关闭!";
            }        private void button2_Click(object sender, EventArgs e)
            {
                frm.Close();
            }
    无论是通过button2手动关闭还是通过form2窗体的关闭按钮关闭,form1的标题都会显示: "form2已关闭!"
      

  4.   


    fm2是我新建的 不是在fm1里声明的 这样能实现吗?