1. 程式人生 > >C# 隱藏視窗後顯示視窗,視窗卡死

C# 隱藏視窗後顯示視窗,視窗卡死

需求:

1.主視窗啟動時,判斷登入狀態

2.沒有登陸狀態或者登入狀態過期,隱藏當前主視窗,顯示登入視窗

3.登入成功後,關閉登入視窗,顯示主視窗

bug

1.主視窗load事件中判斷了登入狀態,校驗失敗後顯示登入視窗,隱藏當前視窗,hide()失敗

使用this.ShowInTaskbar = false;後成功隱藏

2.登入成功後顯示主視窗,主視窗卡死,但是手動呼叫退出登入,登陸成功後顯示主視窗,主視窗不卡死

定位到是load函式中呼叫this.ShowInTaskbar = false;造成的

使用this.Location = new Point((int)System.Windows.SystemParameters.PrimaryScreenWidth, this.Location.Y);把視窗放到螢幕可見區域外。假裝隱藏了。還能順便做個移動的動畫

3.順便一提,如果視窗不是純程式碼建立,在夠造函式中設定視窗位置是沒用的,必須要視窗載入完之後才能設定location,不如show()之後