C# 在运行时修改表单大小,而它';s最大化

C# 在运行时修改表单大小,而它';s最大化,c#,winforms,visual-studio-2010,resize,C#,Winforms,Visual Studio 2010,Resize,我必须根据选择的选项卡修改主窗体的大小。除非窗体窗口最大化,否则以下代码正常工作。这将是一个“退出”的解决方案,即首先最大化,然后修改大小。如何做到这一点 private void tabControl1_SelectedIndexChanged(object sender, EventArgs e) { if (tabControl1.SelectedIndex == 0) { this.Width = x;

我必须根据选择的选项卡修改主窗体的大小。除非窗体窗口最大化,否则以下代码正常工作。这将是一个“退出”的解决方案,即首先最大化,然后修改大小。如何做到这一点

private void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (tabControl1.SelectedIndex == 0)
        {
            this.Width = x;
            this.Height = y;
        }
        else if (tabControl1.SelectedIndex == 1)
        {
            this.Width = x;
            this.Height = y;
        }
    }

您必须进行设置,但我认为在运行时撤销最大化并更改表单大小不是一个好主意。

您必须进行设置,但我认为在运行时撤销最大化并更改表单大小不是一个好主意。

这听起来像是一场可用性噩梦。。。单击选项卡页面后,窗口大小调整可能会将鼠标完全从选项卡上移开,如果说leastI正在将3-4个工具合并到一个winform应用程序中,那将是不和谐的。每个都有自己的尺寸。我可以重新安排一切,但有一些应用程序看起来不错,无论是正常大小还是最大化,但也有一些应用程序看起来很糟糕。我还有什么选择呢。使每个应用程序成为从主窗口加载的单独窗口(甚至将它们停靠在主窗口内)。2.根据最大选项卡的大小调整窗口的大小。3.如果所有其他操作都失败,请确保窗口的左上角保持在同一位置。这仍然会让人不安,但不会那么糟糕。这听起来像是一场可用性噩梦。。。单击选项卡页面后,窗口大小调整可能会将鼠标完全从选项卡上移开,如果说leastI正在将3-4个工具合并到一个winform应用程序中,那将是不和谐的。每个都有自己的尺寸。我可以重新安排一切,但有一些应用程序看起来不错,无论是正常大小还是最大化,但也有一些应用程序看起来很糟糕。我还有什么选择呢。使每个应用程序成为从主窗口加载的单独窗口(甚至将它们停靠在主窗口内)。2.根据最大选项卡的大小调整窗口的大小。3.如果所有其他操作都失败,请确保窗口的左上角保持在同一位置。这仍然是不和谐的,但并没有那么糟糕,因为用户不希望在选择不同的选项卡时窗口大小发生变化。如果您想控制表单的大小,请不要让用户将其最大化。但我的某些选项卡上的某些功能需要最大化,以便能够方便地使用它们。@fishmong3r因为单击表单上的控件,我不希望它会调整表单的大小。此外,如果用户jas将窗体设置为最大化,则在用户将其正常化之前,窗体应保持最大化。因为用户不希望在选择其他选项卡时更改窗口大小。如果您想控制表单的大小,请不要让用户将其最大化。但我的某些选项卡上的某些功能需要最大化,以便能够方便地使用它们。@fishmong3r因为单击表单上的控件,我不希望它会调整表单的大小。另外,若用户jas将表单设置为最大化,那个么它应该保持最大化,直到用户将其规范化。
if (WindowState == FormWindowState.Maximised)
{
    WindowState = FormWindowState.Normal;
}

// Now you can change the size.
this.Width = x;
this.Height = y;