0

TabPageに線を引くのに問題があります。

私は実際にTabControl内にTabControlを持っています。ボックスとして使用しているラベルをいくつか描きました。線を引いてつなぎたいです。

私が試してみました:

Pen P = new Pen(System.Drawing.Color.Black, 10);
tabname.CreateGraphics().DrawLine(P, 10, 10, 100, 100);

Pen P = new Pen(System.Drawing.Color.Black, 10);            
tabcontrolname.TabPages[0].CreateGraphics().DrawLine(P, 10, 10, 100, 100);

どちらも線を表示していません。エラーがないので、どこかに線が引かれていると思います。

正しいTabPageに表示する方法はありますか?

ありがとうございました!

4

3 に答える 3

2

これを適切に機能させるには、おそらくメソッドをオーバーライドするOnPaint(またはイベントを処理する) 必要があります。Paintそうしないと、コントロールが線の上に描画されてしまいます。

関連するドキュメントへのリンクは次のとおりです。

于 2011-10-10T15:42:00.210 に答える
1

これらのコードはどこで、どの関数で試しますか? 初期化や構築で一度やると思い通りに表示されません。コントロールを再描画する必要があるときはいつでも、この線も再度描画する必要があります。コントロールの OnPaint メソッドをオーバーライドするか、Paint イベントに登録してそこで線画を描画します。

于 2011-10-10T15:48:25.073 に答える
0

次のコードを使用して、矢印を表示することができました。

TabPage.Paint += new PaintEventHandler(TabPage_Paint);

        protected void TabPage_Paint(object sender, PaintEventArgs e)
    {
        base.OnPaint(e);
        Pen arrow = new Pen(Brushes.Black, 4);
        arrow.EndCap = System.Drawing.Drawing2D.LineCap.ArrowAnchor;

        e.Graphics.DrawLine(arrow, 10, 10, 100, 100);
        arrow.Dispose();
    }

ただし、スクロールが開始されると、ペイントが台無しになります:(

于 2011-10-11T11:24:29.367 に答える