按钮上的FillRectangle单击表单

时间:2014-10-30 10:36:37

标签: c# onclick fill

当我点击按钮时,我想在表格中绘制(填充)一个矩形。但我无法让它发挥作用,也不知道出了什么问题。

        private void Form1_Paint(object sender, PaintEventArgs e)
    {
        Graphics g = e.Graphics;  //verklaart naar object Graphics
        Vierkant vierkant = new Vierkant();
    }

    private void vierkant_Click(object sender, EventArgs e)
    {
        SolidBrush myBrush = new SolidBrush(Color.Cyan);
        g.FillRectangle(myBrush, 20, 20, 50, 50);
    }

1 个答案:

答案 0 :(得分:1)

图纸是否仍然存在?含义:在调整大小或最大化等后,它仍然存在吗?另外:什么是Vierkant?

要使其保持不变,您可以使用以下代码:

private void Form1_Paint(object sender, PaintEventArgs e)
{
    if (paintIt)
    using( SolidBrush myBrush = new SolidBrush(Color.Cyan) )
           e.Graphics.FillRectangle(myBrush, 20, 20, 50, 50);

}

bool paintIt = false;

private void vierkant_Click(object sender, EventArgs e)
{
    paintIt = true;
    this.Invalidate();

    // ?? what is this supposed to do or be??
    // Vierkant vierkant = new Vierkant();
}

如果两个事件都被连接起来,这将有效。对于更有趣的绘图,您需要存储的不仅仅是bool标志,而是需要创建的drawAction类列表,其中包括形状,数据,画笔等。

如果您将paintIt = true;替换为paintIt = !paintIt;,则每次点击都会显示并消失矩形。