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();
    }

但是,当滚动开始时,Paint 搞砸了:(

于 2011-10-11T11:24:29.367 回答