项目中的按钮将删除方块

本文关键字:删除 方块 按钮 项目 | 更新日期: 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);
    }
}

valueXvalueY是相对XY要绘制矩形的坐标。

这些坐标可以是常量值,或者您可以从某个计时器更改它们并在MyControl上调用Invalidate(),因此将执行绘制。