C#自定义关闭、最小化和最大化按钮

C#自定义关闭、最小化和最大化按钮,c#,c#-4.0,user-controls,C#,C# 4.0,User Controls,我一直在尝试创建自己的程序,使用自定义的关闭最大化和最小化按钮(如Visual Studio或Word 2013等…(我的边框样式设置为“无”),所以我一直在尝试创建三个按钮。一个带有关闭选项,(可以正常工作)一个带有最小化选项(也可以正常工作),还有一个带有最大化按钮。仅“最大化”按钮就可以正常工作,但我希望它与标准windows按钮一样,以便在窗体最大化时,它将恢复窗体以前的状态(正常),我知道可以使用该状态 this.WindowState = FormWindowState.Normal

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

this.WindowState = FormWindowState.Normal;
但是如果你明白我的意思的话,它应该只有一个按钮。我尝试的是生成一个bool,当表单最大化时(使用“if”语句),它的值设置为true;当表单未最大化时,它的值设置为false(else函数)。现在,当单击“最大化”按钮时,表单将最大化,因此布尔值将设置为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”已赋值,但从未使用过它的值

提前感谢。

您正在
set\u 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;
  }
}

谢谢你,我自己也在想办法,这就是你学习的方式,你知道,我找不到一本关于它的书,所以我想我会自己做一本;)谢谢