项目中的按钮将删除方块
本文关键字:删除 方块 按钮 项目 | 更新日期: 2023-09-27 18:32:04
我的 C# winform 项目有问题。
我有绘制正方形的功能:
public void DrawingSquares(int x, int y)
{
System.Drawing.Graphics graphicsObj;
graphicsObj = this.CreateGraphics();
Pen myPen = new Pen(System.Drawing.Color.Black, 5);
Rectangle myRectangle = new Rectangle(x, y, 100, 100);
graphicsObj.DrawRectangle(myPen, myRectangle);
}
private void button1_Click(object sender, EventArgs e)
{
z = Convert.ToInt16(textBox1.Text)-1;
k = Convert.ToInt16(textBox2.Text)-1;
DrawAllSquares();
}
private void DrawAllSquares()
{
int tempy = y;
for (int i = 0; i < z; i++)
{
DrawingSquares(x, y);
for (int j = 0; j < k - 1; j++)
{
tempy += 50;
DrawingSquares(x, tempy);
}
x += 50;
tempy = y;
}
}
在我的项目中,我有一个函数,用于在运行时在窗体周围移动按钮,但是当按钮移动到绘图上时,绘图将被删除。
我该怎么做才能使图纸永久化?
如果你需要永久(就应用程序生命周期而言),无论如何,你需要在你Control's
(必须绘制矩形的Control
)内部使用它,OnPaint方法。
如果您还需要animation
:可以通过使用timer
并更改像参数一样传递给DrawSquares
的坐标来解决。
希望这有帮助。
编辑
伪代码:
public class MyControl : Control
{
public override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
DrawingSquares(e.Graphics, valueX, valueY);
}
public void DrawingSquares(Graphics graphicsObj, int x, int y)
{
Pen myPen = new Pen(System.Drawing.Color.Black, 5);
Rectangle myRectangle = new Rectangle(x, y, 100, 100);
graphicsObj.DrawRectangle(myPen, myRectangle);
}
}
valueX
和valueY
是相对X
,Y
要绘制矩形的坐标。
这些坐标可以是常量值,或者您可以从某个计时器更改它们并在MyControl
上调用Invalidate()
,因此将执行绘制。