2013-04-24 170 views
2

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

this.WindowState = FormWindowState.Normal; 

完成但如果你明白我的意思,它应该是一个按钮。我试过的是制作一个布尔值,当表单被最大化时(用“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。

我认为它说从不使用布尔“恢复”,并将永远使用它的默认值FALSE,它不应该因为我的set_Restore时它最大化。

另外两个警告是:

变量“恢复”被分配但其值从未使用 变量“恢复”被分配但其值从未使用

预先感谢您。

回答

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; 
    } 
} 
+0

谢谢你,还有我试图找出自己,这就是你学习,你知道,我无法找到一个toturial有关,所以我猜我会自己做一个;)谢谢! – 2013-04-27 18:45:08

+0

现在看起来好像很吓人... – 2013-04-27 18:45:35

相关问题