我做的学习程序里面想做这么一个功能,点击一个按钮,在Tab里面新建一个TabPage,Tabpage的内容是一个自定义控件,自定义控件生成后,在主窗口上新增一个ToolStrip,现在我用this.Controls.Add(toolstrip1);可以让这个toolstrip显示出来,但是它总是显示在窗口的最上面,如何调整它的位置,让它处于菜单栏和已有的工具栏的下面呢?

解决方案 »

  1.   

    toolstrip1.Location=new Point(x,y);
    toolstrip1.Size=new Size(width,height);
      

  2.   

    布局要使用容器来组合控件,不能那么大胆、随意地绝对定位。例如菜单、工具栏应该使用Panel并且设置dock。
      

  3.   

    控件的BringToFront()方法可以把某个控件放到最上面。利用这个方法把必须放在上面的控件(比如菜单)拉上来就好了。
      

  4.   

    我也是觉得不能简单的用location来定位,可能会在resize的过程中出现问题
    谁能给个示例啊
    我目前是下面这样的,但是总是显示在最上面,设置了Location也没用
            private void toolStripButton1_Click(object sender, EventArgs e)
            {
                
                bool AccountTabIsExist=false;
                foreach (TabPage tpTemp in tabControl1.TabPages)//find tpAccount tabpage
                {
                    if (tpTemp.Text == "Account")
                    {
                        AccountTabIsExist = true;
                        break;
                    }
                }
                if (AccountTabIsExist)
                {
                    tabControl1.SelectTab("tpAccount");
                }
                else
                {
                    //create a new tpAccount page
                    TabPage tpAccount;
                    tpAccount = new TabPage("Account");
                    tpAccount.Name = "tpAccount";
                    ucAccount ucA = new ucAccount();
                    ucA.Dock = DockStyle.Fill;
                    tpAccount.Controls.Add(ucA);
                    tabControl1.TabPages.Add(tpAccount);
                    tabControl1.SelectTab(tpAccount);
                    BindingNavigator navibarAccount = new BindingNavigator(ucA.tbAccountBindingSource);
                    //下面这一行设置了Location,但是并没有改变位置
                    //navibarAccount.Location = new System.Drawing.Point(toolStrip1.Location.X, toolStrip1.Location.Y + toolStrip1.Size.Height);
                    this.Controls.Add(navibarAccount);
                }
            }
      

  5.   

    好,接楼上的!up ++++++++++
    可以先设置 控件对象的container,然后定义控件在该container 中的位置这样不容易乱
      

  6.   

    比如:this.panel1.Container .Add (tabControl1);
    tabControl1.Dock = DockStyle.Fill ;
    以上仅供参考