绘制在RichTextBox上
本文关键字:RichTextBox 绘制 | 更新日期: 2023-09-27 18:17:20
我试图在RichTextBox中绘制单词和段落的边界,但当我打开UserPaint时,它不再绘制文本,而我的自定义绘画似乎有效。也许我只是忘了打开别的东西?这是我的
public partial class RichTextBoxEx : RichTextBox
{
public RichTextBoxEx()
{
InitializeComponent();
SetStyle(ControlStyles.UserPaint, true);
}
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
//Do some painting here
}
}
使用这个问题的信息对我没有帮助
这对我来说很好:
class RichBox : RichTextBox {
private const int WM_PAINT = 15;
protected override void WndProc(ref Message m) {
if (m.Msg == WM_PAINT) {
this.Invalidate();
base.WndProc(ref m);
using (Graphics g = Graphics.FromHwnd(this.Handle)) {
g.DrawLine(Pens.Red, Point.Empty,
new Point(this.ClientSize.Width - 1,
this.ClientSize.Height - 1));
}
} else {
base.WndProc(ref m);
}
}
}
在富文本框中的事件是一个痛苦的背部,因为他们不触发你认为他们应该触发的方式。这里有一个帖子,有人发布了最少需要的代码,有一个新的控件,通过托管一个丰富的文本框和拦截窗口绘制请求,为你公开适当的绘制事件。它是用VB编写的。