[.NET] 如何在視窗大小改變時重新繪圖?
請輸入專案類型(網站專案或者應用程式專案):應用程式
小弟最近在寫一個繪圖相關的簡易程式,當視窗改變時我希望先將原本的線給清掉
接著重新畫上去,用的指令是:
Me.Refresh()
Me.CreateGraphics.DrawLine(BlackPen, X1, Y1, X2, Y2)
會這樣做的原因是因為CreateGraphics所產生的線很容易被其它東西蓋掉
因此我的程式內會有大量重繪圖的指令(但是這些指令都是在我做了某些動作時才會發生
例如我畫了另一條線時
但是我遇到了兩個問題:
1. 首先,我在繪圖區加上一條線
http://imgur.com/kQmbMzy
2. 假如這時候我開啟別的程式,把繪圖區蓋住了,這個部分的線就會不見
http://imgur.com/NO5kwyW
我找了很久,還是找不到這個事件的名稱,也就是當這個Form變成最上層視窗時動作
3. 如果我改成縮小視窗的話,不足的部分會暫時被遮蔽
http://imgur.com/HPmcmFV
4. 當我重新恢復成最大化時(直接按右上角),原本被蓋住的部分不會重新出現
http://imgur.com/QfrfAU6
但是我如果改用手動拉邊框的話,線則會一直存在
5. 當我最小化之後再放大,一樣的狀況是全部的線都會消失
http://imgur.com/RKRdRQl
想請問是否有辦法讓所有線都能在視窗大小、順序改變時一直存在?
我有想過用 Me.MouseMove 事件,但是這個事件會導致程式瘋狂畫圖,搞到lag
感謝各位鄉民的幫忙 > <
我發現Resize其實有動作,但是線就是畫不出來...
至於第一個狀況,我有試過GotFocus的指令,但是無效
※ 文章網址: https://www.ptt.cc/bbs/Visual_Basic/M.1453312672.A.97D.html
※ 編輯: dogs1231992 (140.112.22.13), 01/21/2016 02:01:09
→
01/21 08:18, , 1F
01/21 08:18, 1F
→
01/21 08:18, , 2F
01/21 08:18, 2F
推
01/21 08:48, , 3F
01/21 08:48, 3F
→
01/21 11:57, , 4F
01/21 11:57, 4F
→
01/21 11:57, , 5F
01/21 11:57, 5F
→
01/21 11:57, , 6F
01/21 11:57, 6F
→
01/21 11:58, , 7F
01/21 11:58, 7F
→
01/21 11:58, , 8F
01/21 11:58, 8F
→
01/21 11:59, , 9F
01/21 11:59, 9F
→
01/21 14:51, , 10F
01/21 14:51, 10F
→
01/21 14:52, , 11F
01/21 14:52, 11F
→
01/21 14:52, , 12F
01/21 14:52, 12F
→
01/21 14:52, , 13F
01/21 14:52, 13F
→
01/21 17:18, , 14F
01/21 17:18, 14F
Visual_Basic 近期熱門文章
PTT數位生活區 即時熱門文章