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

时间:2015-10-16 18:18:17

标签: c#

我想在图片框上绘制正方形,为此我使用此代码:

  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);
                }
            }

        }

对于这个目标我必须做出这样的事情的主要问题:point = point.X + size.Width,但它们是不同的类型。

1 个答案:

答案 0 :(得分:0)

您的代码有很多问题,您确实需要了解Winforms中的绘图。

但实际问题很简单:

您可以将Size添加到Point,如下所示:

point = Point.Add(point, size);

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

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

你的循环毫无意义,我很害怕。您应该在外部<{1}} 创建并在其中添加 循环。之后,您可以拨打List<Rectangle> rectangles = new List<Rectangle> ..!

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

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

永远不要使用FillRectangles(Brushes.somecolor, rectangles.ToaArray()) )!永远不要尝试缓存control.CreateGraphics对象!使用Graphics或在控件的Bitmap bmp事件中使用Graphics g = Graphics.FromImage(bmp)参数绘制Paint