namespace WindowsApplication1
{
    public partial class Form1 : Form
    {    
        private void button2_Click(object sender, EventArgs e)
        {
            Form2 f = new Form2();
            f.Show();
        }
        public void Setbutton2()
        {
            this.button1.Text = "www.wade.cn";
            //this.Update();
            //this.Refresh();
            //this.button1.Refresh();
            //Application.DoEvents();
        }
}
namespace WindowsApplication1
{
    public partial class Form2 : Form
    {
        private void button1_Click(object sender, EventArgs e)
        {
            Form1 f = new Form1();
            f.Setbutton2();
        }
    }
}
// public void Setbutton2()在这个函数中用什么方法可以改变this.button1的TEXT呢(也就是可以调用重绘事件或别的事件呢)?//我以前的做法:
在form1中定义一个“委托”,在form2种定义一个“事件”,并在form2触发事件执form1中的委托!

解决方案 »

  1.   

    Form1 f = new Form1(); 
                f.Setbutton2(); 你又重新创建了一个窗口
    再加一句 f.Show();你就看见了正确的做法是,把你要改变的那个FORM1的实例传进FORM2里
      

  2.   

    委托传参等等很多办法~~~~http://blog.csdn.net/chenyuling/archive/2007/05/25/1625907.aspx
      

  3.   

    你show的是Form2 的实例,Form1没显示出来,你改变Form1的button当然看不到了,看到的是没有改变的Form2的实例。你把Form1显示出来就行了,你调用出对象了。。
      

  4.   

    把你要改变的那个FORM1的实例传进FORM2里
    1楼说的很对
      

  5.   

    如果要按照你写的这段代码下面这样写是不对的
    namespace WindowsApplication1
    {
        public partial class Form2 : Form
        {
            private void button1_Click(object sender, EventArgs e)
            {
                Form1 f = new Form1();
                f.Setbutton2();
            }
        }

    你要想在form2中点击按钮来改变form1中button1的text因该把上面改为
    namespace WindowsApplication1
    {
        public partial class Form1 : Form
        {    
            private void button2_Click(object sender, EventArgs e)
            {
                Form2 f2 = new Form2();
                f2.Show();
                f2.f1=this;
            }
            public void Setbutton2()
            {
                this.button1.Text = "www.wade.cn";
                //this.Update();
                //this.Refresh();
                //this.button1.Refresh();
                //Application.DoEvents();
            }
    }
    namespace WindowsApplication1
    {
    public form1 f1;
        public partial class Form2 : Form
        {
            private void button1_Click(object sender, EventArgs e)
            {
               
                f1.Setbutton2();
            }
        }

    这样就没问题了 记得给分阿