如果我重寫OnPaint並在控件上畫一個正方形,我該如何得到e.graphics.draw ...以便在設計器中預覽它時顯示出來?覆蓋OnPaint
回答
http://msdn.microsoft.com/en-us/magazine/cc164048.aspx
http://msdn.microsoft.com/en-us/magazine/cc164145.aspx
雖然你可以手動 Control.OnPaint註冊加入您的設計 時間UI,你會發現,覆蓋 OnPaintAdornments是一個更好的選擇 ,因爲它是隻有在調用 控件的設計時/運行時UI後纔會調用 畫出來,讓你把 錦上添花(見圖20)。只需添加 到DesignerAttribute的 ClockControl類完成 協會:複製代碼
[ 設計師(typeof運算(ClockControlDesigner)) ]類ClockControl:控制{...}
包含段落描述是很好的,因爲這些鏈接已經死了。 – LarsTech 2016-02-09 20:21:00
如果你試圖繪製一個焦點矩形爲你控制,並且當它被添加到表單後操作你的控件時它是可見的,那麼Gaijin42's approach應該工作。
如果你想看到您的自定義繪製控件的樣子......
如果你已經重寫了
OnPaint
方法在控制,你應該看到OnPaint
的結果,當你在將其添加到表單(或其他控件)之後查看您的控件。如果你想看到
Paint
的結果看設計師爲控件本身時,I don't think that is possible(至少它不符合VS2005):不幸的是這是不可能的。 在編寫用戶控件的行爲 時,代碼不是 已編譯,而設計器實際上是 使用普通用戶控件來託管 子控件。
OnPaint
覆蓋等不會運行。要調試控件 中的覆蓋,您需要在某種 主機中運行它。 VS2005提供了一個新的控制 主機爲此目的,但我發現,即使這是不夠的有時。
- 1. C#:覆蓋ProgressBar上的OnPaint不工作?
- 2. .net壓縮框架按鈕覆蓋OnPaint
- 3. 覆蓋OnPaint:繪製多個矩形
- 4. 派生自System.Windows.Forms.ProgressBar的類沒有得到它的覆蓋OnPaint
- 5. 如何覆蓋此onPaint方法以傳遞列表?
- 6. DoubleBuffered設置爲true時覆蓋OnPaint時出現問題
- 7. 我需要在我的OnPaint覆蓋繪畫(用於.NET控件)
- 8. 覆蓋覆蓋?
- 9. C++覆蓋...覆蓋?
- 10. 覆蓋與覆蓋
- 11. 覆蓋或覆蓋
- 12. OnPaint覆蓋無法在圖片框頂部繪製白色文本
- 13. 覆蓋Picturbox OnPaint事件來旋轉圖像 - 創建自定義圖片盒
- 14. 覆蓋
- 15. 覆蓋
- 16. 覆蓋
- 17. 覆蓋
- 18. 覆蓋
- 19. 覆蓋
- 20. 覆蓋
- 21. 覆蓋
- 22. 用透明覆蓋物覆蓋div
- 23. R:覆蓋圖上的覆蓋圖
- 24. 覆蓋一個畫布覆蓋div
- 25. 如何覆蓋JS URL覆蓋?
- 26. 覆蓋/覆蓋功能內的功能
- 27. selectSingleNode覆蓋/覆蓋交叉瀏覽器
- 28. 如何覆蓋已覆蓋的類
- 29. 顯示覆蓋覆蓋整個頁面
- 30. 覆蓋所有位的覆蓋箱
你問如何繪製一個自定義繪製控件焦點矩形,或如何看到被覆蓋的OnPaint中的結果看一個控件的設計時? – 2009-04-10 20:16:10