当我点击按钮时,我想在表格中绘制(填充)一个矩形。但我无法让它发挥作用,也不知道出了什么问题。
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);
}
答案 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;
,则每次点击都会显示并消失矩形。