如何在主窗体的toolStripButton1_Click事件就调用子窗体的ShowFilter事件
private void toolStripButton1_Click(object sender, EventArgs e)
{
            //获得当前子窗体名
            if (this.ActiveMdiChild != null)
            {
                MessageBox.Show(this.ActiveMdiChild.Name.ToString());
            }}子窗体事件:
       public void ShowFilter()
        {
            MessageBox.Show("sss");
        }

解决方案 »

  1.   

    private void toolStripButton1_Click(object sender, EventArgs e) 

        //获得当前子窗体名 
        if (this.ActiveMdiChild != null) 
        { 
            MessageBox.Show(this.ActiveMdiChild.Name.ToString()); 
            子窗体 subfrm = this.ActiveMdiChild as 子窗体;
            if( subfrm != null ){
                subfrm.ShowFilter();
            }
        } 
    }         //子窗体事件: 
    public void ShowFilter() 

        MessageBox.Show("sss"); 
    }
      

  2.   

    如果是固定这写是没有问题,但是“子窗体”是动态的,就不知道如何写了?   子窗体 subfrm = this.ActiveMdiChild as 子窗体;
      

  3.   

    参考一下http://bingning.net/VB/SOURCE/index.html看看有没有答案。
      

  4.   

           父窗体事件
          private void ToolStripMenuItem_Click(object sender, EventArgs e)
            {
                FromTian Tian = new FromTian();
                Tian.MdiParent = this;
                Tian.Tick();
            }
          子窗体方法
            public void Tick()
            {
                MessageBox.Show("sdfasdfasdfa");
            }
      

  5.   


    private void toolStripButton1_Click(object sender, EventArgs e) 

        if (this.ActiveMdiChild != null) 
        { 
            MessageBox.Show(this.ActiveMdiChild.Name.ToString()); 
            //假设子窗体类型SubForm
            if((this.ActiveMdiChild as SubForm) != null ){
                (this.ActiveMdiChild as SubForm).ShowFilter();
            }
        } 
    } //子窗体事件: 
    public void ShowFilter() 

        MessageBox.Show("sss"); 
    }
      

  6.   

    在编译时出错了,提示:找不到类型或命名空间名称“SubForm”(是否缺少 using 指令或程序集引用?)
      

  7.   

    不好意思,写错了,如果是固定这写是没有问题,但是“子窗体”是未知的,就不知道如何写了? 子窗体的名字是通过this.ActiveMdiChild 得到的。子窗体 subfrm = this.ActiveMdiChild as 子窗体;