我有一個主窗體。使用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