FORMmain 工具栏  一刷新按钮
现有3个子窗体  FORM1  FORM2  FORM3  分别有 dataGridView1 dataGridView2 dataGridView3 
当子窗体为 FORM1 时  点刷新  刷新dataGridView1
当 FORM2 时  刷新 dataGridView2
如何实现!!
重载  怎么实现的
给点步骤 

解决方案 »

  1.   

    http://msdn.microsoft.com/zh-cn/4s6dtf7z(VS.85).aspx如何:确定活动的 MDI 子窗体
      

  2.   

    不用重载,既然内容一样,一个form类就成了。class FormChild
    {
        public void Refrash()
        {
            //.....
        }
    }
    FormChild form1,form2,form3,formCurrent;
    form1 = new FormChild();
    form2 = new FormChild();
    form3 = new FormChild();// default
    formCurrent = form1;
    // some event
    formCurrent.Refrash();
      

  3.   

    确定活动的 MDI 子窗体后调用刷新方法。
      

  4.   

    确定活动的 MDI 子窗体后调用刷新方法。
      

  5.   

    定义 同名方法?
    老大的话总是这么晦涩定义一个接口 interface IForm  里面有一方法 Refresh()FORM1 FORM2 FORM3 实现此接口 和  Refresh()方法这就有同名方法了吧。在主窗体里 获得当前子窗体,强制转换为 IForm  调用Refresh()方法实现刷新不知道是不是这个意思
      

  6.   

    private void MyRefresh(object sender, EventArgs e)
    {
    //获取当前活动子窗体
    Form activeChild = this.ActiveMdiChild;
    //子窗体刷新界面
    activeChild.Refresh();
    }
      

  7.   

    我是一个初学者,太多的编程方法我不懂,我有一个初级方法。看你的意思是父窗体中只能有一个子窗体出现,这就好办了。你的问题的关键是判断当前父窗体中出现的是哪个子窗体。代码如下
    在父窗体中private form1 f1;
    private form2 f2;
    private form3 f3;public formmain()
    {
        form1=null;
        form2=null;
        form3=null;
    }
    //我不知道你是如何弹出子窗体的,假设以按钮单击的形式弹出。
    private void button_Click(object sender EventArgs e)
    {
        form1 fm1=new form1(this);
        fm1.show();
    }
    //设置当前的form1的值
    public void Set_form1(form1 ptf1)
    {
        f1=ptf1;
    }
    //然后进行你的判断在form1子窗体中private formmain fm;public form1(formmain ptfm)
    {
        fm=ptfm;
    }private form1_Load(object sender EventArgs e)
    {
        fm.Set_form1(this);
    }private form1_Closed(object sender EventArgs e)
    {
        fm.Set_form1(null);
    }通过判断f1的值是否为null来判断当前子窗体是否为form1窗体,form2,form3用同样的方法。
      

  8.   


    private void button1_Click(object sender, EventArgs e)
            {            Form frmActive = this.ActiveMdiChild;
                if (frmActive != null)
                {
                    MessageBox.Show(frmActive.Name + "刷新");
                    //这里进行你的刷新操作
                }
                else
                {
                    MessageBox.Show("没有活动窗体");
                }
                
            }
      

  9.   


    //判断某窗体是否存在
    public bool IsExistForm(string strformname)
    {
        bool IsExist = false;
        foreach (Form frm in Application.OpenForms)
        {
            if (frm.Name == strformname)
            {
                frm.Activate();
                IsExist = true;
                return true;
            }    }
        return false;
    }
      

  10.   

    刷新事件:
    form f=this.ActiveMdiChild;
    if(f is form1)
    {}
    else if( f is form2)
    {}
    else
    {}