有一个父窗口,2个子窗口
父窗口里面创建了一个类对象my
myClass my = new myClass();对象里面有一个方法
my.Study();
问题在于子窗口也要用这个对象,难道又要分别在两个子窗口去分别new一下?这样似乎不太对吧

解决方案 »

  1.   

    父窗口声明myClass属性。或者声明为Static. 
      

  2.   

    这个情况很多
    1,可以将study设计为静态方法。
    2,把my这个对象传入子窗体中办法很多
      

  3.   

    父窗体调用子窗体方法需要将子窗体的方法设置为public类型,或者设置为静态方法
      

  4.   

    http://blog.csdn.net/hblixiujin/archive/2010/07/01/5707859.aspx
      

  5.   


        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
            public void fun1()
            {
                
            }
            private void button1_Click(object sender, EventArgs e)
            {
                Form2 frmTarget = new Form2(this);
                frmTarget.ShowDialog(this);
            }
        }public partial class Form2 : Form
        {
            public Form2()
            {
                InitializeComponent();
            }        private Form1 fm1;
            public Form2(Form1 fm)
            {
                this.fm1=fm;
            }
            private void button1_Click(object sender, EventArgs e)
            {
                fm1.fun1();
            }
        }
      

  6.   

    窗体间传值有很多方法的 网上一查
    个人建议 有可能的话  myClass  单例
      

  7.   

    winform间传值   
    通过公共静态类进行传值;  
    通过绑定事件进行传值;  
    使用Attribute  
    public partial class Form1 : Form  
      {  
      private void button1_Click(object sender, EventArgs e)  
      {  
      Form2 frm2 = new Form2();  
      frm2.Show(this);  
      }  
      }    public partial class Form2 : Form  
      {  
      private void button1_Click(object sender, EventArgs e)  
      {  
      Form1 frm1 = (Form1)this.Owner;  
      ((TextBox)frm1.Controls["textBox1"]).Text = this.textBox2.Text;  
      this.Close();  
      }  
      }  
    在父窗口声明myClass属性。
    public MyCalssmyClass{get;set;}
    构造函数传值