C# 在固定的方形图片框中制作方形矩形,就像网格一样

C# 在固定的方形图片框中制作方形矩形,就像网格一样,c#,.net,rectangles,drawrectangle,C#,.net,Rectangles,Drawrectangle,我正在使用c#和visualstudio(.netframework)进行一个项目,在这个项目中,用户可以使用PictureBox与网格中的一些方形框进行交互。默认大小为20 x 20 用户可以更改PictureBox中的方块数,但PictureBox的大小应保持不变。我使用WinForms 我用我的逻辑和一些互联网的代码尝试过,我让它像一个正方形网格一样工作,里面有正方形,但是随着我增加xNum或yNum,网格开始变得越来越小。以下是我的函数,用于绘制矩形: public Graphics

我正在使用c#和visualstudio(.netframework)进行一个项目,在这个项目中,用户可以使用PictureBox与网格中的一些方形框进行交互。默认大小为20 x 20 用户可以更改PictureBox中的方块数,但PictureBox的大小应保持不变。我使用WinForms

我用我的逻辑和一些互联网的代码尝试过,我让它像一个正方形网格一样工作,里面有正方形,但是随着我增加xNum或yNum,网格开始变得越来越小。以下是我的函数,用于绘制矩形:

 public Graphics CreateRectangles(int xNum, int yNum, Graphics g)
        {
            rectList.Clear();

            int width = (pictureBox1.Image.Height / xNum) - 1;
            int height = (pictureBox1.Image.Height / yNum) - 1;
            int both = (width + height) / 2;

            Rectangle rect = new Rectangle();
            rect.Size = new Size(both, both);
            for(int x = 0; x < xNum; x++)
            {
                rect.X = x * rect.Width;
                for(int y = 0; y < yNum; y++)
                {
                    rect.Y = y * rect.Height;
                    rectList.Add(rect);
                }
            }
            pictureBox1.Refresh();
            foreach (Rectangle rec in rectList)
            {
                Pen p = new Pen(Color.Blue);
                g.DrawRectangle(p, rec);
            }
            g.DrawLine(new Pen(Color.Blue), 0, yNum * height, xNum * width, yNum * height);
            return g;
        }

请帮助我解决这个问题,以便pictureBox1中的正方形区域保持最大,而不会与其他GUI元素重叠。
提前谢谢。当然,随着网格单元数量的增加,网格单元变得越来越小。如果您不希望出现这种情况,请绘制固定大小的单元格。问题是网格单元格可能会减少,但总体上也会减少,因为您没有处理这些单元格,所以漏笔。使用块使用
创建笔(在循环之外,因为它们都是相同的),或者切换到默认笔,因为您没有使用
Pens.Blue指定不同的大小。“请帮助我解决这个问题,使pictureBox1中的正方形区域保持最大,而不与其他GUI元素重叠。”…在不知道表单和布局上的内容的情况下,我们如何知道该大小?。。。
                pictureBox1.Image = new Bitmap((Screen.PrimaryScreen.Bounds.Width / 8) * 7, (Screen.PrimaryScreen.Bounds.Height / 8) * 7);