Graphics graphics = Graphics.FromHwnd(this.button1.Handle);this.button1.Show();Rectangle newRect = button1.DisplayRectangle;System.Drawing.Icon ico = new Icon(@"D:\Web.ico");graphics.DrawIcon(ico, newRect);graphics.Dispose();button上沒有,form上也沒有,是不是沒有畫出來?
1 回答

人到中年有點甜
TA貢獻1895條經(jīng)驗 獲得超7個贊
肯定能畫出來,關(guān)鍵是你在哪兒繪制的。
一般都是在 Paint/OnPaint 事件里面繪制。
如果你在別的事件里繪制,你得保證繪制之后再也不去觸發(fā)它的 Paint 。
比如你現(xiàn)在在 Click 里面畫了,你鼠標移入 Button 會觸發(fā)一次 Paint(按鈕變高亮狀態(tài)),你之前畫的就被擦掉了;你鼠標點擊一下,又觸發(fā)一次 Paint(按鈕變點擊狀態(tài));你鼠標移出,又觸發(fā)一次 Paint(按鈕變正常狀態(tài));最小化窗體后又恢復還會觸發(fā) Paint(重繪);獲得焦點、失去焦點會 Paint……等等等等,觸發(fā) Paint 的可能太多了,你要不在 Paint 里繪制,那么每次 Paint 都會把上一次繪制好的給擦掉了。
除非你用一個 Timer 不間斷繪制保證不被刷掉,但這樣對資源耗費太大了。
添加回答
舉報
0/150
提交
取消