VB.net
原本只是純粹簡單想寫一個"全畫面"(not全螢幕)容器
結果沒想到遇到瓶頸= =
Code在此
http://chopapp.com/#sgv82k2
簡單的說
Ctrl+Enter 可以切換邊框跟無邊框
Alt+Enter 可以切換全畫面跟視窗
(全畫面的意思:不進入全螢幕模式,只是純粹把視窗無邊框化並填滿畫面,可切換視窗)
bFullSreen:紀錄狀態是否全畫面中
bShowBorder:紀錄全畫面前的邊框狀態
bToogle:紀錄按鍵狀態,後述
bChangeWithKey:判定是否因快速鍵而啟動SizeChanged事件
(命名很爛而且寫得很亂)
**
1.首先雖然有用 pWindowSize 紀錄全畫面前的視窗大小
但因為 SizeChanged 事件的啟動時機對KeyDown的先後順序微妙
加上修改 FormBorderStyle 好像也會動到 SizeChanged
所以變成原本 pWindowSize 會在恢復視窗前再次紀錄 Me.Size
所以才在前後包夾 bChangeWithKey 並用他當判斷標準(原本是 bFullScreen )
不知道有沒有更好的寫法...感覺頗蠢的
2.這次主要的問題,是 MyBase.KeyUp 沒反應
主要是想解決按住不放會快速來回狀態的問題,所以加了bToogle當Flag
但沒想到 MyBase.KeyUp 沒反應導致bToogle根本不會回復,變成只有一次改變機會
上網找了一下需要修改 Me.KeyPreview 為True
但還是沒有改善這個情況
請問何解?