2个datagridview对应的是同一个Access文件里面的2个表现在我想把2个datagridview之间的数据在Form2里面进行四则运算。那么要怎么做呢?如果在打开Form1里面的datagridview输入数据后   且切换到Form2时此数据依然保存  那么又如何做捏~~?
国际惯例~~满点送上~

解决方案 »

  1.   

     俺的.net 交流群是59714431  欢迎大家进来讨论这些问题。 
    我打广告.楼主不要删啊^_^
      

  2.   

    不知道lz的具体意思,下面给个方法,可以在Form2中操作Form1中DataGridView里的数据.
    Form1中:
    将DataGridView设为public.
    打开Form2时:
    Form2 frmForm2 = new Form2();
    frmForm2.frmForm1 = this;
    frmForm2.show();Form2中:
    public Form1 frmForm1;此时在Form2中便可以进行如下操作:
    Messagebox.show(frmForm1.DataGridView.Rows[0].Cells[0].Value);
      

  3.   

    通过构造函数,属性,代理实现窗体数据传递
    FrmM:
     private void btn1_Click(object sender, EventArgs e)
            {
                FrmS fs = new FrmS();
                fs.Owner = this;
                fs.ShowDialog();
            }
    FrmS:
     private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
            {
                FrmM fm = (FrmM)this.Owner;
                fm.txt1.Text = dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString();
                 this.Close();
            }参考
      

  4.   

    4楼的这个是需要通过Button来实现的?可以不通过么?
      

  5.   

    我的意思就是在2个Form之间的2个dataGridView 对应的2个表     将dataGridView1里面的数据传递到dataGridView2里面进行运算、、
      

  6.   

    直接用SQL语句算好显示啊,计算的话直接从数据表里面取就行了
      

  7.   

    楼主舍本逐末了.既然两个GRID数据有联系
    把你要用的数据查出来放到一个GRID里不就完了?
      

  8.   

    按钮的点击事件中,通过SQL运算,然后把结果重新绑定到dataGridView2. 
      

  9.   

    现在我想把2个datagridview之间的数据在Form2里面进行四则运算。 在SQL里做如果在打开Form1里面的datagridview输入数据后  且切换到Form2时此数据依然保存  那么又如何做捏~~?用构造函数传值
    Form1 上有TextBox1,Form 2上有TextBox2,要让TextBox2的值及时传到TextBox1上可以用构造函数实现。首先在Form1上点botton1 ,弹出 Form2在Form1.cs中Form2 f2 =new Form(this.TextBox1);在Form2.cs中public partial class From2: Form
        {     private System.Windows.Forms.TextBox txtMiddle;      public From2(TextBox heckbo)
            {
                InitializeComponent();
                this.txtMiddle = heckbo;  
            }      private void textBox2_TextChanged(object sender, EventArgs e)
            {
                txtmiddle.Text = textBox2.Text;
            }
        }其中txtmiddle这个控件只是做个桥梁作用。就这样,通过改变textBox2的值就可以直接显示在from1中的textBox1上了
      

  10.   

    如果就想按你的思路实现,那就在form2中定义一个datagridview,然后构造时将form1的datagridview传进来,这样想怎么操作就怎么操作,随你了。
      

  11.   

    把两个from及其里面的datagrid的modifier属性设为public,那你就可互相访问了
      

  12.   


    2楼大大的frmForm1怎么定义的哦?
      

  13.   

    楼主,关键应该不是用不用Button来实现吧,你可以在程序里直接使用btn1_Click(null, null)来触发啊,反正没用到相关数据。
      

  14.   


    这个messagebox.show出来的结果就是。
    未处理的“System.NullReferenceException”类型的异常出现在 text.exe 中。
    未将对象引用设置到对象的实例。。
      

  15.   

    添加一个 public 字段 用于保存其中一个页面datagridview某项值 在另个页面中与目标datagridview对应项值相加
      

  16.   

    其实很简单:如下
    声明一个接口
    public interface IGrid
    {
        /// <summary>
        /// 获取或设置form1的DataGridView
        /// </summary>
        DataGridView Form1Grid { get; set; }    /// <summary>
        /// 获取或设置form2的DataGridView
        /// </summary>
        DataGridView Form2Grid { get; set; }
    }既然是form1打开form2
    那么在form1里实现这个接口
    class Grid : IGrid
    {    DataGridView form1Grid;    DataGridView form2Grid;    #region IGrid 成员    public DataGridView Form1Grid
        {
            get
            {
                return form1Grid;
            }
            set
            {
                form1Grid = value;
            }
        }    public DataGridView Form2Grid
        {
            get
            {
                return form2Grid;
            }
            set
            {
                form2Grid = value;
            }
        }    #endregion
    }然后在form2里为构造函数添加IGrid参数
            public Form2(IGrid grid)
            {
                InitializeComponent();
                grid.Form2Grid = this.dataGridView1;
            }并为form1声明接口
    IGrid grid;最后在form1打开form2的事件中设置grid
    grid = new Grid();//实例化
    grid = this.dataGridView1;//与form1的dataGridView1相关联
    Form2 a = new Form2(grid);//打开form2,并与form2的dataGridView1相关联现在就可以通过grid的Form1Grid和Form1Grid的属性控制两个窗口的DataGridView了(在任意一个窗口都可以控制)
    在编辑form1的DataGridView回触发事件,在事件中利用grid即可控制form2的DataGridView
      

  17.   

    grid = this.dataGridView1;//与form1的dataGridView1相关联 
    这句话应该是grid.Form1Grid = this.dataGridView1;
      

  18.   

    4L的怎么弄都是fm.txt1.Text = dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString(); 未将对象引用设置到对象的实例。23楼的、、看不懂。。
      

  19.   

    假定输入数据的form名为formInput,里面有一个输入数据用的datagridview名为inputGrid,
    做四则运算的form名为formSum,里面有个显示运算结果的datagridview名为sumGrid。
    按我的理解就是在formInput里的inputGrid输入数据后,将结果显示在sumGrid里。
    思路就是将inputGrid传递给formSum里,然后在formSum订阅输入数据时的事件,并在事件中处理sumGrid的要显示的数据。
    假设楼主是用CellEndEdit事件(编辑单元格结束后引发的事件)
    操作如下:
            public FormSum(DataGridView inputGrid)
            {
                InitializeComponent();
                formInputGrid = inputGrid; //获得formInput的inputGrid的引用,操作formInputGrid即可操作inputGrid。
                formInputGrid.CellEndEdit += new DataGridViewCellEventHandler(formInputGrid_CellEndEdit); //订阅inputGrid的CellEndEdit 事件        }        DataGridView formInputGrid;        void formInputGrid_CellEndEdit(object sender, DataGridViewCellEventArgs e)
            {
                //在此处理编辑inputGrid的单元格结束后的操作
                //通过参数e的属性可以获得操作单元格的行和列,
            }在实例化formSum时要将inputGrid传递进去。