我试过在第一个窗体作一个按钮,点击按钮时,把第二个窗体设为第一个窗体所有,在第一个窗体关闭时可以更新第一个窗体。
private void button1_Click(object sender, EventArgs e)
{
frm_SupplierComp SupplierComp = new frm_SupplierComp();
SupplierComp.Owner = this; //指定新开窗口的所有者为当前窗口
SupplierComp.frmEnter.Text = "3";
SupplierComp.Show();}frm_repair f = (frm_repair)this.Owner;
f.UpdateComobox();
但我现在作的是第二个子窗体更改数据,第一个窗体是打开状态,第二个窗体不是点击第一个窗体的按钮打开的,不能用owner功能,如何才能作到第二个窗体更改数据后,第一个窗体的数据重新刷新?请老师指点一下,万份感谢。

解决方案 »

  1.   

    用委托!你的委托,跟这个帖子类似,都是属于A窗体show出B窗体后,如果B窗体数据发生变化,怎么让A窗体也跟着变化,可以用委托实现事件通知,就是当B窗体改变数据后,触发一个事件,A窗体获知这个事件后,进行刷新处理:
    http://topic.csdn.net/u/20100914/14/8701d0e9-c355-4dac-b428-493e535a0c4d.html
      

  2.   

    委托实现
    Form2 f2 = new Form2();
     private void button1_Click(object sender, EventArgs e)
      {
      f2.MyA+= new Form2.AA(B);
      f2.Show();
      }
    void B(string str){}public delegate void AA(string str);
    public event AA MyA;
     private void button1_Click(object sender, EventArgs e)
      {
      this.MyA();
      }
      

  3.   


    //Form1
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;namespace TestShow
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
            public Form1(string str)
            {
                InitializeComponent();
                this.label1.Text = str;
            }
         private void button2_Click(object sender, EventArgs e)
            {
                Form2 fr2 = new Form2();
                fr2.Show();
                this.Visible = false;
            }
    //=========================
    //Form2
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;namespace TestShow
    {
        public partial class Form2 : Form
        {
            public Form2()
            {
                InitializeComponent();
            }
            private void button1_Click(object sender, EventArgs e)
            {
                Form1 fr1 = new Form1(textBox1.Text);
                fr1.Show();
                this.Visible = false;
            }
        }
    }