MainForm main=new MainForm();
        //添加数据
        private void button1_Click(object sender, EventArgs e)
        {
            crm crm = new crm();
            crm.Name = txtname.Text.Trim();
            crm.Order = txtorder.Text.Trim();
            crm.Qq = txtqq.Text.Trim();
            crm.Tel = txttel.Text.Trim();
            crm.Re = textBox1.Text.Trim();
            crm.Address = txtaddress.Text.Trim();
            try
            {
                crm.Amount = Int32.Parse(txtamount.Text.Trim());
            }
            catch (Exception ex)
            {
                MessageBox.Show("金额必须为数字!");
                txtamount.Focus();
                return;
            }
            
            crm.Date = Convert.ToDateTime(dateTimePicker1.Text);
            
            int id = ProductDao.insert(crm);
            
            crm = ProductDao.getById(id);
            AddProduct(crm);
            //main.DataBind();
            
            this.Close();
            main.DataBind();
            
        }
mainForm上有個“添加按鈕”,单击出来一个添加数据的窗体,如何实现关闭添加数据窗口后,同时刷新主窗体上的数据表呢?main.DataBind();就是main窗体上查出数据所以数据的方法我上面的代码无法实现,关闭弹出窗体后,主窗体的数据没变化,需要重开软件才能看到刚才添加的数据

解决方案 »

  1.   

    单击出来一个添加数据的窗体
    这个时候把主窗体的句柄(对象) 传递过去, 更新由 句柄(对象).DataBind();
     
      

  2.   

    你在添加数据的窗体上定义要保存数据放在变量上,然后主窗体判断是否为
    DialogResult.OK
    if(crm.DialogResult == DialogResult.OK)
    {
      主窗体的值 = crm.变量
    }
      

  3.   

    我的人做法是;在添加数据窗体里声明一个主窗体对象, 在主窗体的构造函数里 个对象赋值,就是添加数据窗体对象=this; 在把主窗体里查询数据信息方法 方法修饰符改为 当前程序集,internal,这样你在添加信息窗体里就能调用,主窗体里的方法了,就能起到 关闭窗体更新信息的效果