需要从图片框上的方形单元格创建字段

本文关键字:方形 单元格 创建 字段 | 更新日期: 2023-09-27 18:18:07

我想在picturebox上绘制正方形,为此我使用以下代码:

  private void button1_Click(object sender, EventArgs e)
    {
        int x;
        int y;
        Point point = new Point(0, 0);
        SolidBrush pen = new SolidBrush(Color.Red);
        Size size = new Size(10, 10);
        if (int.TryParse(textBox1.Text, out x) && int.TryParse(textBox2.Text, out y))
        {
            using (Graphics g = Map.CreateGraphics())
            {
                int n = x * y;
                for (int i = 0; i < n; i++)
                {
                    Rectangle[] rects = 
                    {
                        new Rectangle(point, size) 
                    };
                    point = point + size;
                    g.FillRectangles(pen, rects);
                }
            }
        }

主要问题是,为了达到这个目的,我必须这样做:点=点。X + size。宽度,但它们是不同的类型。

需要从图片框上的方形单元格创建字段

你的代码有很多问题,你真的需要学习如何在Winforms中绘图。

但实际的问题很简单:

您可以像这样将Size添加到Point:

point = Point.Add(point, size);

这使用了Point类中许多未知的方法之一。

注意:SizeRectangle类也包含有用的方法!


恐怕你的循环没有意义。您应该在之外创建一个List<Rectangle> rectangles = new List<Rectangle> ,并在循环中添加。之后你可以调用FillRectangles(Brushes.somecolor, rectangles.ToaArray()) ) ..!

至于其他问题:你很快就会发现为什么你的图形不能持久等等。

提示:Winforms图形基本规则#1:

永远不要使用control.CreateGraphics !永远不要尝试缓存Graphics对象!要么使用Graphics g = Graphics.FromImage(bmp)绘制到Bitmap bmp中,要么使用e.Graphics参数绘制到控件的Paint事件中。