Я работаю над проектом с использованием c# и Visual Studio (. NET Framework), в котором пользователь может взаимодействовать с некоторыми квадратными прямоугольниками, расположенными в сетке, используя PictureBox. Размер по умолчанию будет 20 x 20. Пользователь может изменить количество квадратов в PictureBox, но размер PictureBox должен остаться прежним. Я использую WinForms.
Код, который я пробовал, используя мои логики c и некоторые целые rnet, я получаю, работая как квадратная сетка с квадратами в них, но, как я увеличение 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.Image = new Bitmap((Screen.PrimaryScreen.Bounds.Width / 8) * 7, (Screen.PrimaryScreen.Bounds.Height / 8) * 7);
Пожалуйста, помогите мне решить проблему, чтобы размер площадь квадрата в pictureBox1 остается самой большой, не превышая других GUI элементов. Заранее спасибо. ?