我想吧form1 里面的textbox,button和listbox等控件在form2中使用可是不知道怎么共享~~~~~~~请高手帮忙  谢谢

解决方案 »

  1.   

    你可以设置一个静态的全局变量存放form1对象,或者在form1中new一个form2出来的时候,传递一个this给form2,也就让form2可以访问到form1了,之后操作form1中的控件就没问题了。
      

  2.   

    把需要共享的控件声明为PUBLIC就行了
      

  3.   

    你可以设置一个静态的全局变量form1,或者在form1中new一个form2的时候传递this给form2(需要修改form2的构造函数),这样在form2中就可以访问到form1的对象,你想操作form1的控件就没问题了。
      

  4.   

    给你一段静态全局变量的方法:    public partial class Form1: Form
        {
            public static Form1 pform1 = null;        public Form1()
            {
                InitializeComponent();
                pform1 = this;
            }
        }
    这样就可以直接使用Form1.pform1来访问Form1对象了,但是你要操作里面的控件,需要使用反射才行,那个如果你不会的话,建议找找教程吧,反射可是个大课题,不是随便说说就能懂的,我也之会点皮毛。
      

  5.   

    Form1中的控件的Modifiers属性设置成Public,就可以在Form2中调用了。
    Form1frm1=new From();
    frm1.Textbox1;
      

  6.   

    1楼和3楼说的都是 用构造方法来 跨页面传值,很经典的用法,我说的这个跟他们不一样,我是用一个公共类,你在你的项目里新建一个类文件,随便取什么名字都行,比如我们传一个button过去,在form2中操控form1中的一个buttonpublic class Helper
    {
        public static Button myButton; //我只给一个例子了,如果你要传很多东西,可以尽量写很多变量
    }
    在form1中的
    [cod=C#]
    form_Load(object sender ,EventArgs e)
    {
       Helper.myButton=button1;  //这里的button1是form1里的 你要传过去的button,
    }
    [/code]
    这样你就可以在form2中去操控form1中的button1了。你在form2里修改form1中button1的属性 都对应修改 form1中button1的属性。试试看吧就好象 我们可以传参数过去,为何我们不直接传这个对象呢。实际不过是告诉了我们这个button对象在内存中的地址而已
      

  7.   

    1楼和3楼说的都是 用构造方法来 跨页面传值,很经典的用法,我说的这个跟他们不一样,我是用一个公共类,你在你的项目里新建一个类文件,随便取什么名字都行,比如我们传一个button过去,在form2中操控form1中的一个button C# code
    public class Helper
    {
        public static Button myButton; //我只给一个例子了,如果你要传很多东西,可以尽量写很多变量
    }
    在form1中的 
     
    form_Load(object sender ,EventArgs e) 

      Helper.myButton=button1;  //这里的button1是form1里的 你要传过去的button, 

     
    这样你就可以在form2中去操控form1中的button1了。你在form2里修改form1中button1的属性 都对应修改 form1中button1的属性。 试试看吧 就好象 我们可以传参数过去,为何我们不直接传这个对象呢。实际不过是告诉了我们这个button对象在内存中的地址而已