但我还想在关闭控件的时候(每个控件都可以dispose()),主窗体工作区清空,并且在状态栏中将控件的名字清掉,怎样才能在控件dispose()时,修改状态栏呢?
----给你的控件的关闭事件加上一个方法就可以了,参考下面的例子

解决方案 »

  1.   

    Form ShowForm = (Form)info.Invoke( Portal,args );
    ShowForm.TopMost = false;
    ShowForm.TopLevel = false;
    ShowForm.FormBorderStyle = FormBorderStyle.None;
    ShowForm.Dock = DockStyle.Fill;
    this.panel17.Controls.Add( ShowForm );
    ShowForm.Show ();
    ShowForm.Closed += new EventHandler(ShowForm_Closed);
      

  2.   

    //加载流程图窗体
    private void ShowForm_Closed(object sender, EventArgs e)
    {
    ((Form)sender).Dispose();
    Form ShowForm = new FormFollowDraw();
    ShowForm.TopMost = false;
    ShowForm.TopLevel = false;
    ShowForm.FormBorderStyle = FormBorderStyle.None;
    ShowForm.Dock = DockStyle.Fill;
    this.panel17.Controls.Add( ShowForm );
    ShowForm.Show ();
    this.labFuction.Text = "系统流程图";
    }
      

  3.   

    :)
    感谢星级领导光临只是有点高深,没看懂,呵呵我的控件中有退出按钮,在单击这个退出按钮时,执行控件.Dispose();
    但此时只是关闭了当前控件,我却改变不了调用控件主窗体中状态栏的属性能不能再详细点,委托一直是我的难点,多谢了
      

  4.   

    简单的说,你可以把你控件上的退出按钮放开,设置为Public然后再加载控件的时候,给这个Button加上一个事件比如说:我在加载Form4的时候,如下:(加载控件和这个差不多)
    Form4 f = new Form4();
    f.TopLevel = false;
    f.button4.Click += new EventHandler(Exit_Click);
    this.panel1.Controls.Add(f);
    f.Show();
    在主窗体呢
    我有这么一个方法
    public void Exit_Click(object sender, EventArgs e)
    {
    this.Text = "xx";
                               //随意设置
    }
      

  5.   

    当然,你可以给你的控件加上一个属性,用来访问私有的按钮:)Form4....public Button GetExitButton
    {
        get{return this.BtnExit;}
    }
      

  6.   

    可以尝试一下:给你的基类控件加上一个属性
    public Button GetExitButton
    {
        get{return this.BtnExit;}
    }
    同时加上一个退出控件
    this.BtnExit;这个BtnExit在基类里面的Click可以尝试写成Virtual方法
    以便在派生类里面override
      

  7.   

    多谢了     :)
    这么晚才下班啊,辛苦喽!!!csdn就没有结不了的贴,感谢各位哦!!!!!!!!!!!!!!!!