0

我想在 PictureBox 上画几个数字。我预计以下代码将绘制一个具有全尺寸对角线的矩形,但事实并非如此。线不与矩形的右下角相连。我真的很好奇可能出了什么问题?

    private void onPaint(object sender, PaintEventArgs e)
    {
        Graphics g = e.Graphics;
        Pen p = new Pen(System.Drawing.Color.Black, 2);
        g.DrawRectangle(p, 50, 10, 400, 400);
        g.DrawLine(p, 50, 10, 400, 400);
    }
4

2 回答 2

2

DrawRectangle中,最后两个参数是宽度和高度。在DrawLine中,最后两个参数是最终的 x 和最终的 y。

因此,只需将起始 x 和起始 y 添加到宽度和高度即可得到对角线:

g.DrawRectangle(p, 50, 10, 400, 400);
g.DrawLine(p, 50, 10, 450, 410);
于 2013-06-16T14:58:23.673 回答
0

此外,如果您声明一个 Rectangle,那么您可以更改值而无需更改绘图代码。就像是:

    private void onPaint(object sender, PaintEventArgs e)
    {
        Graphics g = e.Graphics;
        Rectangle rc = new Rectangle(50, 10, 400, 400);
        using (Pen p = new Pen(System.Drawing.Color.Black, 2))
        {
            g.DrawRectangle(p, rc);
            g.DrawLine(p, rc.Left, rc.Top, rc.Right, rc.Bottom);
        }
    }
于 2013-06-16T16:49:21.810 回答