在其他表格上绘制

问题描述 投票:0回答:1

[对,我正在尝试在我的项目中的每个表单周围绘制边框。我目前的方法是将相同的代码分别复制到每个表单中,但是得出的结论是,为了简单起见,最好将所有代码都放在一个类中。

我提出的课程看起来像这样:

class PaintBorder
{
    private static Rectangle topBorder;
    private static Rectangle leftBorder;
    private static Rectangle rightBorder;
    private static Rectangle bottomBorder;
    private static int borderThickness;

    public static void GenerateBorder(Form form, int thickness)
    {
        topBorder = new Rectangle(0, 0, form.Width, borderThickness);
        leftBorder = new Rectangle(0, 0, borderThickness, form.Height);
        rightBorder = new Rectangle(form.Width - borderThickness, 0, borderThickness, form.Height);
        bottomBorder = new Rectangle(0, form.Height - borderThickness, form.Width, borderThickness);

        Brush b = new SolidBrush(Theme.borderColor);
        Graphics g = form.CreateGraphics();
        g.FillRectangle(b, topBorder);
        g.FillRectangle(b, leftBorder);
        g.FillRectangle(b, rightBorder);
        g.FillRectangle(b, bottomBorder);

        g.Dispose();
    }
}

我将要绘制的表单以及边框的粗细传递给GenerateBorder(),但这似乎不起作用。调用该方法时,表单上没有任何内容。

所以我的问题是,我在做什么错?

c# forms drawing paint
1个回答
0
投票

对,只是我很傻。我从未真正给borderThickness赋值,这显然意味着什么都看不到。我的坏。

© www.soinside.com 2019 - 2024. All rights reserved.