是否有一个物体的目的是无限期地保持形式?

时间:2014-04-16 15:10:28

标签: c# .net winforms user-interface

我有一张表格。在这种形式中有一个标签控件,还有一个菜单条。我希望tab控件占据整个表单的空间;但是,我不希望菜单条覆盖它的顶部。

为了解决这个问题。我做了一个控件,我使面板与菜单条的大小相同。我先将面板控件添加到菜单条中,然后添加了tab控件;但是,我没有得到理想的结果。有人能告诉我如何得到我想要的结果吗?

如果没有额外的面板,这就是它的样子。

enter image description here

我们这里是代码:

    public Main()
    {
        InitializeComponent();

        //Panel placeholder = new Panel()
        //{
        //    MaximumSize = menuStrip1.MaximumSize,
        //    MinimumSize = menuStrip1.MaximumSize,
        //    Size = menuStrip1.Size,
        //    Padding = menuStrip1.Padding,
        //    Visible = true,
        //};
        //placeholder.Dock = DockStyle.Top;
        //Controls.Add(placeholder);
        Controls.Add(InitNavigation());
    }

    TabControl InitNavigation()
    {
        //Declare All Variables
        TabControl control = new TabControl();
        TabPage queryPage = new TabPage();
        TabPage tablePage = new TabPage();
        control.TabPages.Add(queryPage);
        control.TabPages.Add(tablePage);

        //Customize Table Control 
        control.Top = menuStrip1.Size.Height;
        control.Dock = DockStyle.Fill;
        Padding Margin = control.Margin;
        MessageBox.Show("" + menuStrip1.Size.Height);
        //control.Margin = new Padding(Margin.Left,, Margin.Right, Margin.Bottom);

        //Customize Query Tab 
        queryPage.Text = "Queries";

        //Customize Table Page
        tablePage.Text = "Tables";
        control.Visible = true;
        return control;
    }

这就是面板的样子 enter image description here 这是代码:

    public Main()
    {
        InitializeComponent();

        Panel placeholder = new Panel()
        {
            MaximumSize = menuStrip1.MaximumSize,
            MinimumSize = menuStrip1.MaximumSize,
            Size = menuStrip1.Size,
            Padding = menuStrip1.Padding,
            Visible = true,
        };
        placeholder.Dock = DockStyle.Top;
        Controls.Add(placeholder);
        Controls.Add(InitNavigation());
    }

    TabControl InitNavigation()
    {
        //Declare All Variables
        TabControl control = new TabControl();
        TabPage queryPage = new TabPage();
        TabPage tablePage = new TabPage();
        control.TabPages.Add(queryPage);
        control.TabPages.Add(tablePage);

        //Customize Table Control 
        control.Top = menuStrip1.Size.Height;
        control.Dock = DockStyle.Fill;
        Padding Margin = control.Margin;
        MessageBox.Show("" + menuStrip1.Size.Height);
        //control.Margin = new Padding(Margin.Left,, Margin.Right, Margin.Bottom);

        //Customize Query Tab 
        queryPage.Text = "Queries";

        //Customize Table Page
        tablePage.Text = "Tables";
        control.Visible = true;
        return control;
    }

最后。最后一张图片只是显示了标签实际上在那里(除了菜单条可见性设置为false之外,它与发布的第一个代码的代码相同)。 enter image description here

有关如何解决此问题的任何见解将不胜感激

1 个答案:

答案 0 :(得分:1)

如果完全停靠的控件位于顶部停靠控件下方,请尝试将完全停靠的控件放在前面(在设计器中右键单击它并选择从前面开始)这应该修复它。