我有一个表单,在表单中有一些控件,我想绘制一些线作为表单边界。 由于某些控件停靠在表单的两侧,因此不能使用下面的方法,因为它只在表单上绘制,但稍后再次被控件覆盖。
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中。 在没有使用自定义用户控件的情况下,是否有直接解决方案来控制线条?