如何用主窗体中工具栏上的按钮,控制子窗体的显示与关闭?  我想要的效果是这样.
  有一个mainfrom主窗体,它是个mdi容器窗口,它上有一工具栏,工具栏上有4个按钮,btn1,btn2,btn3,btn4
  当我点击btn1时,显示子窗体frm1,
  当我点击btn2时,关闭子窗体frm1,显示子窗体frm2,
  当我点击btn3时,关闭子窗体frm2,显示子窗体frm3,
  当我点击btn4时,关闭子窗体frm3,显示子窗体frm4,
 再点击btn1时,关闭子窗体frm4,显示子窗体frm1, 
总之,就是点击一个按钮,只让它对应的子窗体显示,其余的关闭,
  请教老师,如何才能做到呀?

解决方案 »

  1.   

    这个没有什么吧,因为你的窗体名称是有规律的(frm1-frm4),你可以判断一下当前活动窗体的名称,并进行关闭(如果同时打开多外的话)和显示,如果同时只有一个的话,根据你按钮的名称(btn1-btn4)中的数字来决定显示哪个窗体就行,可以使用反射,也可以通过switch
      

  2.   

    你设置一个私有变量,为 from m_frm ;
    在每个按钮的点击事件中下判断 私有变量 m_frm 是否为null ,
    如果不为null 就调用 m_frm.close(),之后将 m_frm=new from2();
    之后打开,操纵临时变量就行了
      

  3.   

    请老师看看,怎么点两次才,from2才显示?
        public partial class MainForm : Form
            {
            public MainForm()
                {
                InitializeComponent();
                }
            private Form f1;    private void toolStripButton2_Click(object sender, EventArgs e)
                {
                if (f1 != null)
                    {                f1.Dispose ();
                    }
                f1 = new Form2();//点两次才,from2才显示
                f1.Show(this);
                }