这是在程序启动时执行的代码。 (创建扁平框)
e.Graphics.FillRectangle(Brushes.Lime, 469, 132, 175, 28);
问题是,我找不到改变颜色的方法。
该事件必须_Paint接受e.Graphics使用,有人可以解释我缺少的东西吗?
答案 0 :(得分:1)
我收集了你,谈论的是Windows窗体。如果是这样,在Windows窗体Framework中,所有控件都从Control
类继承。这个Control
类公开了一个Refresh
方法,它在调用时会导致控件使其客户区无效并重绘自身,这意味着Paint
事件被触发...所以只需调用Refresh
方法并操纵Paint
事件中的Graphic对象。这是一个例子......
SolidBrush brush;
protected void btn_Click(object sender, EventArgs e)
{
brush = new SolidBrush(Color.Linen); //<--- set the brush color
this.Refresh();
}
protected void myForm_Paint(object sender, PaintEventArgs e)
{
e.Graphics.FillRectangle(brush, 469, 132, 175, 28);
}
因为this
引用了表单,当您调用this.Refresh()
时,它会导致表单触发Paint
事件,因此您必须在调用{{{{}}之前设置要使用的画笔。 1}}