gpt4 book ai didi

c# - 在 C# 中绘制矩形和圆形无法正常工作

转载 作者:行者123 更新时间:2023-11-30 15:32:01 24 4
gpt4 key购买 nike

所以我正在创建一个二维网格,其中包含矩形和圆形的图形流程布局面板。然而,我遇到的问题是它们没有被完全绘制。

这是按下按钮时的事件代码。

    private void DrawIt()
{

System.Drawing.Graphics graphics = flowLayoutPanel1.CreateGraphics();
graphics.Clear(Form1.ActiveForm.BackColor);

int row = Convert.ToInt32(textBox1.Text);
int column = Convert.ToInt32(textBox2.Text);

flowLayoutPanel1.Width = (row * 50) + 30;
flowLayoutPanel1.Height = (column * 50) + 1;

for (int j = 0; j < column; j++)
{
for (int i = 0; i < row; i++)
{
System.Drawing.Rectangle rectangle = new System.Drawing.Rectangle(50 * i, 50*j, 50, 50);
graphics.DrawEllipse(System.Drawing.Pens.Black, rectangle);
graphics.DrawRectangle(System.Drawing.Pens.Red, rectangle);
}
}
}

我将每个矩形的大小设置为 50 像素,这样我就知道计算宽度和高度的大小。我什至添加了一些额外的以防我搞砸了。但最后我得到以下信息:

Incomplete drawings

对可能出现的问题有什么想法吗?

最佳答案

您从面板创建图形,然后更改其大小。因此,图形对象会裁剪到以前的大小。

在创建图形对象之前更改大小:

int row = Convert.ToInt32(textBox1.Text);
int column = Convert.ToInt32(textBox2.Text);

flowLayoutPanel1.Width = (row * 50) + 30;
flowLayoutPanel1.Height = (column * 50) + 1;

System.Drawing.Graphics graphics = flowLayoutPanel1.CreateGraphics();
graphics.Clear(Form1.ActiveForm.BackColor);

for (int j = 0; j < column; j++)
{
for (int i = 0; i < row; i++)
{
System.Drawing.Rectangle rectangle = new System.Drawing.Rectangle(50 * i, 50 * j, 50, 50);
graphics.DrawEllipse(System.Drawing.Pens.Black, rectangle);
graphics.DrawRectangle(System.Drawing.Pens.Red, rectangle);
}
}

关于c# - 在 C# 中绘制矩形和圆形无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19748703/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com