需要从图片框上的方形单元格创建字段
本文关键字:方形 单元格 创建 字段 | 更新日期: 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
类中许多未知的方法之一。
注意:Size
和Rectangle
类也包含有用的方法!
恐怕你的循环没有意义。您应该在之外创建一个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
事件中。