4
我想繪製一個RichTextBox,但我能做到的唯一方法是通過調用OnPaint/OnPaintBackground
。RichTextBox和UserPaint
問題是OnPaint或OnPaintBackground不會被調用,除非「UserPaint」標誌打開,但是當此標誌打開時 - 文本本身不會被繪製!
我該如何解決這個問題?
我想繪製一個RichTextBox,但我能做到的唯一方法是通過調用OnPaint/OnPaintBackground
。RichTextBox和UserPaint
問題是OnPaint或OnPaintBackground不會被調用,除非「UserPaint」標誌打開,但是當此標誌打開時 - 文本本身不會被繪製!
我該如何解決這個問題?
這是我用什麼來保證的OnPaint被稱爲RichTextBox中已經處理了繪畫本身first之後的代碼:
class MyRichTextBox: RichTextBox
{
private const int WM_PAINT = 15;
protected override void WndProc(ref System.Windows.Forms.Message m)
{
base.WndProc (ref m);
if (m.Msg == WM_PAINT && !inhibitPaint)
{
// raise the paint event
using (Graphics graphic = base.CreateGraphics())
OnPaint(new PaintEventArgs(graphic,
base.ClientRectangle));
}
}
private bool inhibitPaint = false;
public bool InhibitPaint
{
set { inhibitPaint = value; }
}
}
什麼樣的你在說什麼「過漆」?改變背景顏色?在文本的頂部繪圖?在它下面? – 2011-03-08 21:47:25