大家帮我看一下代码。我现在想在Form2的按钮单击时,FORM1中的图片隐藏起来。代码如下:
FORM1        private void btn1_Click(object sender, EventArgs e)
        {
            //ChangePic();        //此代码已测试正常            Form2 fm2 = new Form2();
            fm2.Show();
        }        public void ChangePic()
        {
            pictureBox1.Visible = false;
        }
FORM2        private void btn2_Click(object sender, EventArgs e)
        {
            //调用FORM1中的ChangePic方法
            Form1 fm1 = new Form1();
            fm1.ChangePic();
        }
但是不能达到预期的效果,FORM1中的图片还是照样显示的,
不知为何?求高人解答。

解决方案 »

  1.   

    你Form2 new出来的Form1 已经不是原来那个Form1了
    所以你更改的只是new出来的Form1  你可以写一句 fm1.show()来验证我说的~~
      

  2.   

    Form1private void button1_Click(object sender, EventArgs e)
            {
                Form2 frm = new Form2();
                frm.ClickBtn += new Form2.BtnEventHandler(ChangePic);
                frm.Show();
            }        public void ChangePic()
            {
                pictureBox1.Visible = false;
            }Form2public delegate void BtnEventHandler();        public event BtnEventHandler ClickBtn;        private void button1_Click(object sender, EventArgs e)
            {
                if (ClickBtn != null)
                {
                    ClickBtn();
                }
            }
      

  3.   

     Form1 fm1 = new Form1();
                fm1.ChangePic();
                fm1.Show();
    这样就行了
      

  4.   

    private void btn2_Click(object sender, EventArgs e)
            {
                //调用FORM1中的ChangePic方法
                ((fm1)this.owner).ChangePic();
            }试试
      

  5.   


    LS好高级= =
    是我的话 我就把Form1当参数传给Form2.。 当然这种方法比较低级。。
      

  6.   

    ((fm1)this.owner).ChangePic();
    变成((form1)this.owner).ChangePic();