大家好,我有一个窗体1, 类1类1下代码如下:public void change()
{
  窗体1 f=new 窗体1();
  f.text="变化";
}窗体1下的一个按钮代码如下:类1 class1=new 类1();
class1.change();这样为什么窗体1的标题没有改变啊?我哪个地方写错了?应该怎么写?谢谢大家,分不多,不好意思。

解决方案 »

  1.   

    应该是 窗体1 是你新实例化的。。并未SHOW,如果你想改变已显示的窗体。必须将对象传递给方法
      

  2.   


    public void change()
    {
      窗体1 f=new 窗体1();
      f.text="变化";
    }类1 class1=new 类1();
    class1.change();
    因为你在窗体的按钮中创建的class1对象,去调用它的change方法是,change方法里面是新建了一个窗体对象f,这个f不是你按钮所属那个窗体,所以不会变化的,你在change方法中,增加
    f.show();就会看到f对象的标题是改变了的!
      

  3.   

    但那是change方法中创建的f窗体的标题变化了,这不是你要的效果,你要的是按钮所在的窗体也要发生变化,这个时候,要通过引用传递来实现:public void change(窗体1 f)
    {
      f.text="变化";
    }
    //修改类1的定义,要在创建类1对象时,传入当前窗体的引用类1 class1=new 类1();
    class1.change(this);//this代表按钮所在的窗体
      

  4.   

    楼上正解   change 中 的窗体 不是你的当前窗体  你在 f.text=“变化” 前面 加一个 f.show()方法就可以看到变化了
      

  5.   


    我的类1下的chang函数是带有参数的。change(int i)
    那你说的class1.change(this)应该怎么写?
    谢谢!
      

  6.   

    就是修改类1的change方法,我不是给出了?public void change(窗体1 f)
    {
      f.text="变化";
    }
    然后调用它的时候,要把代表窗体自己传递过去呀!
      

  7.   

    类1 class1=new 类1();
    class1.change();
    类1设置form属性
    public Form f
    {
    get;set;
    }设置属性值
    通过委托调用方法修改title