在Winform中绘制线条控件

时间:2017-12-13 05:31:26

标签: c# winforms

我有一个表单,在表单中有一些控件,我想绘制一些线作为表单边界。 由于某些控件停靠在表单的两侧,因此不能使用下面的方法,因为它只在表单上绘制,但稍后再次被控件覆盖。

        int penWidth = 1;
        Pen aPen = new Pen(Color.Red, penWidth);
        e.Graphics.DrawLine(aPen, 0, 0, 0, Height);
        e.Graphics.DrawLine(aPen, Width - penWidth, 0, Width - penWidth, Height);
        e.Graphics.DrawLine(aPen, 0, 0, Width, 0);
        e.Graphics.DrawLine(aPen, 0, Height - penWidth, Width, Height - penWidth);

我看到其他解决方案,包括使用用户控件来“绘制”表单中的行,但我完全不喜欢这个想法。 我也想迭代表单中的控件,只要它在表单的边缘,我会在其中画一条线,但是这也不起作用。

foreach (Control ctl in this.Controls)
        {
            if (ctl.Left == 0) //at left edge
                ctl.CreateGraphics().DrawLine(aPen, 0, 0, Width, Height);
        }

它根本没有帮助,或者我实际上做错了。以上都是在事件方法Form1_Paint中。 在没有使用自定义用户控件的情况下,是否有直接解决方案来控制线条?

我最接近的是 Form 如您所见,缺少停靠标签框周围的边框。

0 个答案:

没有答案