第一方案
class Class1//建立一个类class1
    {
        public Form3 fr3;
        public Class1()
        {
           fr3 = new Form3();
        }
        public void settext()
        {
            string ss = "sssssssssss";
            fr3.setlabeltext = ss;
        }
    }
 private void Form3_Load(object sender, EventArgs e)//在form3窗体里
        {
            Class1 class1 = new Class1();
            class1.settext();
        }
        public string setlabeltext
        {
            set
            {
                label1.Text = value;
            }
        }第二方案class Class1//建立一个类class1
    {        public static void settext(Form3 fr3)
        {
            string ss = "sssgggggggggggggggg";
            fr3.setlabeltext = ss;        }
       
    } private void Form3_Load(object sender, EventArgs e)//在form3窗体里
        {           Class1.settext(this);
           
        }
        public string setlabeltext
        {
            set
            {
                label1.Text = value;
            }
        }
为什么方案1无法得到字符串ss的值 方案2却可以得到
 帮帮忙啊!各位

解决方案 »

  1.   

    第一个fr3实例不是指向主程序中的Form3实例的,而第二个的实例就是主程序中的实例,
    所以第一个的ss赋值向了fr3中的“setlabeltext ”,而不是form3这个对象的setlabeltext 。
      

  2.   

    fr3上的label1已经被赋值了只是没有showdialog方法显示fr3窗口。
    建议你跟一下就了解了
      

  3.   

    public Class1() 
            { 
              fr3 = new Form3(); 
            } 
    这个构造函数使得fr3已经指向了一个Form3类的实例了.