我有一个主窗体。使用KeyDown事件,我可以按照用户的请求(按CTRL + ALT + ENTER)使窗体变成全屏。因此,我需要:1)当窗体不是在“全屏模式”,并且用户按CTRL + ALT + ENTER,如预期的那样,窗体变为全屏,并且2)当窗体已经在“全屏模式”,用户按下CTRL + ALT + ENTER,表格应该恢复原来的样子。C#还原一个已更改的表单属性值
将窗体转换为FullScreen已完成。问题是,现在我必须确定大小,位置和窗体边框样式(其中任何一个)的属性在哪里更改,然后将它们还原为我按下键之前的任何值,以便我可以撤消这些属性变化。
private bool IsFullScreen() //Is form at "FullScreen Mode"?
{
return (this.Height == Screen.PrimaryScreen.Bounds.Height
&& this.Width == Screen.PrimaryScreen.Bounds.Width &&
this.FormBorderStyle == FormBorderStyle.None);
}
private void FullScreen(Object sender, KeyEventArgs e)
{
if (e.Alt & e.Control & e.KeyCode == Keys.Enter)
{
if (!IsFullScreen()) //Form is resized to FullScreen, only if it's not already 'fullscreened'
{
this.FormBorderStyle = FormBorderStyle.None;
this.Location = new Point(0, 0);
this.Size = new Size(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);
}
else
{
/*Form goes back to whatever size, location, and form border style
it had before I pressed CTRL + ALT + ENTER*/
}
}
}
这怎么可能实现?有没有我可以使用的类/方法? (我认为PropertyChanged可能是唯一的,但我仍然无法找到如何恢复我想要的属性)谢谢。 PS:如果你想知道为什么我没有把窗口设置为“最大化”,窗体边界没有设置,并且用它来完成,事实证明,教授只是不喜欢该解决方案,并且想要我们要'全屏'它的真实,而不是'快速地让它看起来像'。 我遇到的唯一困难就是让表单在“完全放映”之前回到之前的状态。
在启动会是什么模式:全部或正常吗? – tharif 2015-04-03 05:16:49
@效用正常。然后,如果用户希望如此,他们可以按CTRL + ALT + ENTER,这会使其变满。如果他们再次按下它,表单应该返回到之前的大小,位置和表单边框样式(这就是问题所在......请记住,用户可能更改了其中的任何一种 - 特别是大小 - ) – soulblazer 2015-04-03 05:22:47