2011-10-10 191 views
0

我无法在TabPage上画一条线。在C#中的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?

谢谢!

回答

2

您可能需要重写OnPaint方法(或处理Paint事件)以使其正常工作。如果你不这样做,你的控制就会结束你的画线。

这里有一个链接到相关docs

1

你在哪里尝试这些代码,在哪个函数中?如果您在初始化或构建过程中执行过一次,它们将不会像您期望的那样显示。无论何时需要重新绘制控件,都需要再次绘制该线。重写控件的OnPaint方法或注册Paint事件并在那里执行线条绘制。

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

然而,启动时滚动油漆弄乱:(

+0

这可能会帮助那部分:http://stackoverflow.com/questions/2406720/paint-on-panel-allowing-auto-scroll –

+0

此外,你可能想编辑你的问题,而不是发布一个答案当你需要澄清时,请在这里下载。 :-) –