我想实现上图这样一个功能, 在MenuStrip里面通过点击切换页面,而窗体始终保持一个,窗体最上面的菜单栏和标题栏等不变,而下面有一个活动的区域。
类似于浏览器的标签页切换,像tabpage控件,不过每个区域的切换由MenuStrip完成。
才开始学C#,虚心求教。

解决方案 »

  1.   

    去看看tabcontrol控件,边学边应用。
      

  2.   

    刚刚看了下,可以把tabpage设置成button形式, 但是这样的话没有下拉菜单。
    我想通过menustrip来实现tabpage的切换,请问该怎么处理。
      

  3.   


            #region 窗体统一动作
            private void tab_Container_DoubleClick(object sender, EventArgs e)
            {
                    ((TabControl)sender).SelectedTab.Controls.Clear();
                    ((TabControl)sender).TabPages.Remove(((TabControl)sender).SelectedTab);
            }        private void OpenForm(Form subform)
            {
                TabPage tp = new TabPage(); tp.Text = subform.Text; bool boolean = true;
                foreach (TabPage item in tab_Container.TabPages)
                { if (item.Text == tp.Text) { boolean = false; this.tab_Container.SelectedTab = item; break; } }
                if (boolean)
                {
                    subform.TopLevel = false; subform.FormBorderStyle = FormBorderStyle.None; subform.Parent = tp;
                    tp.AutoScroll = true; tp.Parent = tab_Container; subform.AutoScroll = true; subform.Size = tp.Size;
                    subform.Anchor = ((AnchorStyles)(((AnchorStyles.Top | AnchorStyles.Left) | AnchorStyles.Right | AnchorStyles.Bottom)));
                    subform.Show(); tab_Container.SelectedTab = tp;
                }
            }
            #endregion
    OpenForm方法为窗体的统一打开方法,
    单击需打开窗体的菜单:在事里添加:
    basic.clientinfor subform = new basic.clientinfor(); OpenForm(subform);而tab_Container_DoubleClick为双击tabcontrol事件
    也就是关闭tabpage。
      

  4.   

    你的菜单栏还是你的菜单栏,只是在显示区域加一个tabcontrol控件,我理解你的需求是:单击菜单时打开窗体,让窗体显示在最前面,并且多个窗体间可以任意的切换。是否理解有误。