我正在構建一個使用GDI +繪製圖像和形狀到表單的C#應用程序,但我不知道如何刪除它們。比方說,我有一個使用GDI +繪製的可選網格,當用戶關閉它時,我想,關閉它,以某種方式刪除它,而不會影響工作畫布上的其他對象。什麼是最好的方法?謝謝!刪除GDI +對象
1
A
回答
3
一個簡單的例子,下降一個CheckBox的形式:
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
checkBox1.CheckedChanged += new EventHandler(checkBox1_CheckedChanged);
}
private void checkBox1_CheckedChanged(object sender, EventArgs e) {
this.Invalidate();
}
protected override void OnPaint(PaintEventArgs e) {
if (checkBox1.Checked) {
e.Graphics.DrawArc(Pens.Black, this.ClientRectangle, 0, 360);
}
}
}
調用Invalidate()的關鍵是擦除原始圖形,它迫使重新繪製的形式。基類實現的默認OnPaintBackground方法將所有事情都變回戰艦灰色。
1
Windows不存儲您的位圖輸出。要刪除項目,請使用標誌在OnPaint()中有條件地繪製它。將該標誌設置爲false並在有問題的控件上調用Invalidate()。
1
另外,其他用戶表示,我建議只在必要的地區使用Invalidate(region)
,而不是所有的繪圖區域。
相關問題
- 1. GDI對象沒有刪除
- 2. 刪除GDI對象不會減少它們的編號
- 3. 刪除由shell32.dll創建的gdi對象 - > ExtractIconEx
- 4. 刪除對象
- 5. 刪除對象
- 6. 刪除[]對象
- 7. 刪除對象
- 8. 用gdi +繪製並刪除線+
- 9. JavaScript對象刪除
- 10. 刪除S3對象
- 11. 刪除域對象
- 12. Django刪除對象
- 13. THREE.js對象刪除
- 14. 刪除對象Coredata
- 15. 刪除對象tastypie
- 16. Python'with'not'刪除對象
- 17. AS3 - 刪除對象
- 18. 刪除對象NSFetchedResultsController
- 19. 刪除s3對象
- 20. 刪除HABTM對象
- 21. HttpClient刪除對象
- 22. GDI對象HBRUSH半透明
- 23. 繪製GDI +圖形對象
- 24. 刪除無法刪除JSON對象
- 25. 刪除對象時刪除線程
- 26. Django的 - 刪除對象,而不刪除其相關對象
- 27. 在Django中刪除子對象時刪除父對象
- 28. 休眠 - 刪除對象引用而不刪除對象
- 29. 休眠刪除對象而不刪除相關對象
- 30. 如何刪除對象b,設置對象a後,但不刪除對象a?