DOBON.NET DOBON.NETプログラミング掲示板過去ログ

RichTextBoxで背景に線や背景色

環境/言語:[Windows Vista/7 C# VC2010 Winアプリ]
分類:[.NET]

お世話になります。

RichTextBoxに背景で線、文字、背景色を表示させたく調べています。

public class myRichTextBox : System.Windows.Forms.RichTextBox
{
myRichTextBox()
{
this.SetStyle(ControlStyles.UserPaint, true);
}
:
:
protected override void OnPaint(PaintEventArgs e)
{
Point[] ps = { new Point(0, 0), new Point(350, 250), new Point(480, 400), new Point(400, 550) };
e.Graphics.DrawLines(Pens.Black, ps);
Brush brush1 = new SolidBrush(Color.Black);
e.Graphics.DrawString("XXXXXXXXXXXXXXXXXXXXXXXXXX", new Font("MS P明朝", 10), brush1, 20, 120);

base.OnPaint(e);
}
protected override void OnPaintBackground(PaintEventArgs pevent)
{
base.OnPaintBackground(pevent);

// 1ページの長さ(1ページの所見は、14行)
int y = Font.Height * 14;

Rectangle rect = new Rectangle(this.ClientRectangle.X, this.ClientRectangle.Y + y, this.ClientRectangle.Width, this.ClientRectangle.Height);
SolidBrush brush = new SolidBrush(Color.LightPink);
//Graphics g = syntaxRichTextBox2.CreateGraphics();
pevent.Graphics.FillRectangle(brush, rect);
}
と、派生クラスに書いてやれば表示などなどしてくれますが、問題が発生しました。
1.タイプした文字が表示されず空白で表示のままカレットが移動する。
  −>文字を通常の様に表示させたい。
2.背景に書いてあるはずの線や、背景色が、改行すると下にずれる。
  −>文字入力に影響されずに表示したい

よろしくお願いします。
グラフィカルな表現力を求めるならWPFが便利です。
WPFのコントロールどうしはバックグラウンドの透過に対応していますので、背景描画用コントロールの上にRichTextBoxを重ねることも可能です。

<参考>
WindowsフォームでWPFコントロールを利用するには
http://www.atmarkit.co.jp/fdotnet/dotnettips/800wpfonwinform/wpfonwinform.html

DOBON.NET | プログラミング道 | プログラミング掲示板