我在主界面里点了某个菜单项,弹出一个对话框,对话框要进行一些操作修改主界面里某些控件的信息,要怎么做?我不太懂C#的原理。。  主界面类如果不实例化是不能调用控件的 那该怎么办= =

解决方案 »

  1.   

    弹出窗口
    public Class Form2()
    {
    public Form Parent;
    }在 主界面里面
    Form2 frm = new Form2();
    frm.Parent=this;
    frm.show()
    在弹出窗口中可以直接用this.Parent.属性访问主窗口任意公用属性和方法了
      

  2.   

    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();  
      }  
      }  
      

  3.   


      //主界面 
      //将要修改的控件的属性的修饰词设定为 public 
      public control=.... ;
      From FrmMain=new From();
      frmMain.Show();
      
      //调用界面
      From frmAssistant=new From(frmMain);
      frmAssi=new From();
      
      //在frmAssistant类中可以调用要修改的控件
      frmMain.control 
      
      
      

  4.   

    传递窗体没关系,是引用类型
    有几种方法实现:
    1、在对话框窗体的创建函数中传递主窗体对象,需要设置变量保存此对象
    2、使用对话框窗体的Ower和Parent属性保存主窗体对象
    3、可以使用Tag属性,此属性可以保存任意一个Object对象的引用,建议使用