比如form1里有一个textbox1, form2里有个textbox2,我写了个:
form2 f=new form2();
textbox1.text=textbox2.text;调试错误是,无权访问f.textbox2,.....受保护。
这是怎么回事?

解决方案 »

  1.   

    利用构造函数传参
    form2 f=new form2(参数1,参数2); 
      

  2.   

    textbox2是私有的你可以在Form2初始化时把textbox2存在另一类里然后Form1去访问
      

  3.   

    把form2里中的textbox2改成public
      

  4.   

    http://hi.baidu.com/libinguest/blog/item/0110fb1f077de96af624e4b0.html花20分钟看完上面的,
    窗口间传值以及控件互操作,都没有问题了.
      

  5.   

    你如果是要得到TEXTBOX.TEXT的话。不用这么麻烦的。
    定义一个属性 string类型的public string Strtext
    {get;
    set;
    }
    strtext = textbox2.text;
    form2 f=new form2(); 
    textbox1.text = f.strtext;
      

  6.   

    public partial class Form3 : Form
        {
            public Form3()
            {
                InitializeComponent();
                Form4 f4 = new Form4(this.label1.Text );
                f4.Show();
            }
        }
    public partial class Form4 : Form
        {
            public Form4(string text)
            {
                InitializeComponent();
                label1.Text = text;
            }
        }
      

  7.   

    是的 
    Form2里的textBox1新建的时候默认属性是private,
    解决方法:
     1.可以在Form2上选定textBox1控件,然后把右边的属性框里的Modifiers属性值改为public
     2.也可以在右边资源管理器窗口中点开Form2.cs下的Form2.designer.cs,在里面找到定义textBox1控件的地方,把它前面的private改成public即可够详细了吧~
      

  8.   

    楼主我教你一个最简单的方法,你直接在form2的Modifiers属性设置为public,你之后就可以通过这样的语句来访问form2的textbox2了,你要form1里面就可以这样写,保证能成功。
    form2 f2=new form2();
    textbox1.text=f2.textbox2.text;
    如有问题,我可以给你写个最简单的例子程序。
      

  9.   

    楼上的方法简单,但,有点不妥吧
    建议用属性,get(),set()方法
      

  10.   

    form2 f=new form2(参数1,参数2);