你定义了成员变量 public window1 w1,没有初始化,在Form1_Load方法里又定义了局部变量也叫w1且实例化了,但是这个局部变量不等于成员变量那个w1,它出了作用域就失效了。button1_Click时的w1是成员变量的w1,它没有初始化过,自然报空引用异常。正确的方法是以Form1_Load里不要加类型声明:w1 = new window1();
load 里面 把前面的类名去掉。