C#Custom Close,Minimize和Maximize按钮

时间:2013-04-24 12:06:25

标签: c# c#-4.0 user-controls

我一直在尝试创建自己的程序,自定义关闭最大化和最小化按钮(如在Visual Studio或Word 2013等...(我的边框样式设置为“无”))所以我'一直试图做的是创建三个按钮。一个有关闭选项,(工作正常)一个带最小化选项,(也可以正常工作)和一个带最大化按钮。单独最大化按钮工作正常,但我希望它像标准的Windows按钮,所以当窗体最大化时,它将恢复窗体以前的状态(正常),我知道可以用

this.WindowState = FormWindowState.Normal;

但如果你理解我的意思,它应该只有一个按钮。我试过的是制作bool,当表单最大化时(使用“if”语句)将值设置为true,并在表单未最大化时设置为false(否则为函数)。现在,当单击最大化按钮时,表单将最大化,因此布尔值将设置为true,但是当我再次单击时,没有任何反应!其他功能,如关闭和最小化工作正常,我甚至做了一个“恢复”按钮,工作得很好!

感谢任何帮助,这是我的代码:

    bool restore;

    private void set_Restore()
    {
        {
            if (this.WindowState == FormWindowState.Maximized) //Here the "is" functions is
            {
                restore = true; //Sets the bool "restore" to true when the windows maximized
            }
            else
            {
                restore = false; //Sets the bool "restore" to false when the windows isn't maximized
            }
        }
    }

    private void MaximizeButton_Click(object sender, EventArgs e)
    {
        {
            if (restore == true)
            {
                this.WindowState = FormWindowState.Normal; //Restore the forms state
            }
            else
            {
                this.WindowState = FormWindowState.Maximized; //Maximizes the form
            }
        }
    }

嗯,我有三个警告,这是我认为是错误的:

字段'WindowsFormsApplication2.Form1.restore'永远不会分配给,并且始终将其默认值设为false。

我认为它说bool“restore”从未被使用过,并且总是有它的默认值FALSE,它应该不会因为我的set_Restore最大化时。

另外两个警告是:

已分配变量'restore',但从不使用其值 变量'restore'已分配,但其值从未使用

提前谢谢。

1 个答案:

答案 0 :(得分:3)

您正在set_Restore()方法中创建本地恢复变量:

bool restore = true;

尝试将其更改为:

restore = true;

我甚至不认为这个变量是必需的。我想你可以这样做:

private void MaximizeButton_Click(object sender, EventArgs e) {
  if (this.WindowState == FormWindowState.Maximized) {
    this.WindowState = FormWindowState.Normal;
  } else {
    this.WindowState = FormWindowState.Maximized;
  }
}