客戶要求屏幕只橫向顯示,但即使在社區中提了問大家也沒有很方便的直接的解決方案。
http://topic.csdn.net/u/20100614/16/67381f77-657a-4d8f-b1c6-6bc75b26b3da.html
而且MSDN上提供的以下解決方案會會拋異常:(在SystemSettings.ScreenOrientation = so這裏)
http://msdn.microsoft.com/zh-cn/library/microsoft.windowsce.forms.screenorientation(v=VS.80).aspx
冥思苦想了很久,各種方式都實驗了,最終找到了比較折衷的一種方案:利用Timer。
1. Timer控件的默認間隔爲100毫秒(至少得設置成100毫秒,不然會拋異常)。
2. 在窗體的Resize事件中,設置Timer.Enable = true。(翻轉時即開始計時)
3. 在Timer的Tick事件中,通過SystemSettings.Screenorientation判斷當前的屏幕狀態(爲橫或爲豎),如果不是橫向,則設置爲ScreenOrientation.Angle270(或90),並設置Timer.Enable = false。(恢復原方向,停止計時)
這樣,每次屏幕翻轉的時候就會先轉動一下,接着馬上恢復爲原方向。