首先在a中定义显示数据的公共方法,然后在窗体B中声明一个窗体a的对象,把创建的a传递过去,在b中调用a的公共方法
....
forma a = new forma();
b.frma = a;
b.show;
a.showData();
...

解决方案 »

  1.   

    把要控制的那个数据定义为public ,也可以加static 那样就可以直接form1[窗口名].dataset[数据名]访问
      

  2.   

    首先要A窗口与B窗口中的数据源是邦定同一个数据源就行,对象类型是地址引用
    可定义一个public static的数据集(或者一个数据源)
    只要二个窗口邦定同一个数据源就可以同步数据显示
      

  3.   

    把要控制的那个数据定义为public ,也可以加static 那样就可以直接form1[窗口名].dataset[数据名]访问
    不过也不好同步啊
    我试过的
    各位给个具体的代码我看看
    我基本上上面的方法都试过
      

  4.   

    将另一窗口的相关变量设置成public 如public DataGrid datagrid1;
      

  5.   

    将另一窗口的相关变量设置成public 如public DataGrid datagrid1
    这样可以访问datagrid,但是不可以即时更新
      

  6.   

    新建一个类,包含 一个静态的方法,返回public  dataset ,系统公用:
    public dataset  ReturnDS ()
    {}
      

  7.   

    a窗体的DBGRID刷新一下就可以了
      

  8.   

    问题关键是在构造Form2对象时把Form1中的dataSet11和sqlDataAdapter1对象传递给Form2对象,传递通道是Form2的构造函数的参数,我的小程序的关键代码如下://双击Form1的DataGrid启动Form2. 
    private void dataGrid1_DoubleClick(object sender, System.EventArgs e)
    {
    Form2 F2=new Form2(dataSet11,sqlDataAdapter1);
    F2.Show();
    }
    //Form2的构造函数.
    public Form2(System.Data.DataSet DS,System.Data.SqlClient.SqlDataAdapter DA)
    {
    dataSet11=DS;    //变量dataSet在Form2中定义.
    sqlDataAdapter=DA;  //变量sqlDataAdapter在Form2中定义.
    InitializeComponent();
    }//Form2的添加响应函数.
    private void button1_Click(object sender, System.EventArgs e)
    {
    System.Data.DataTable table=dataSet.Tables[0];
    System.Data.DataRow row=table.NewRow();
    row[0]=textBox1.Text;
    row[1]=textBox2.Text;
    row[2]=textBox3.Text;
    ......
    table.Rows.Add(row);
    sqlDataAdapter.Update(dataSet,"tablename"); }//
      

  9.   

    在Form2里面定义
    Public Form1 mainFrom;在Form1里面生成Form的时候如下
    Form2 form2 = new Form2();
    form2.mainFrom = this;
    form2.visible = true;这样在Form2里面就可以通过操作Form1里面的数据和控件
    比如Form1里面有个dataSet1,Form2里面有个dataGrid1
    在Form2里面就可以用Form1里面的dataSet1来填充Form2的dataGrid1
    dataGrid1.DataSource = mainForm.dataSet1;思路就不用说了吧,这么简单,form2.mainFrom = this;就相当于生成了一个主窗体的引用而已
      

  10.   

    感觉上13880079673(CMonkey的 方法不错
    Form2 form2 = new Form2();
    form2.mainFrom = this;
    form2.visible = true;
    我一定好好体会
      

  11.   

    回复人: skydaxia() ( ) 信誉:100  2004-01-14 20:13:00  得分:0 
     
     
      上面这种方法可以填充数据
    但是不能同步
    所以不是上佳的方法
      
     
    我觉得你说的很奇怪呢,form2.mainFrom = this;后,实际上mainFrom就等同于主窗体了,mainFrom只不过是主窗体的别名,在子窗体和主窗体内任何对mainFrom的修改都会产生相同的结果,也就是说改变了mainFrom就是改变了主窗体,你还有什么理由认为他们不能同步
      

  12.   

    的确,这样做是也把数据添加合修改到数据库中,但是我要得是这边加一条记录,另外得一个窗体马上就显示这天记录,所谓得即时反映。比如我在窗体2里面加有这么一个按钮,她能够控制窗体一上得datagrid使得她能够指向哪一行。
      

  13.   

    有两个窗体,form1,form2在form1 中button的click事件中写

             Form2 myForm2= new Form2();
    myForm2.Show();
    myForm2.button1.Text="test from form";(//可以修改要打开的form2的值)
    myForm2.myForm1=this;      //这个是最重要的,传递引用,在form2中,必须的定义一个form1类型的变量
    public Form1 myForm1测试通过