形式画刷

时间:2014-07-01 01:07:10

标签: c#

这是在程序启动时执行的代码。 (创建扁平框)

e.Graphics.FillRectangle(Brushes.Lime, 469, 132, 175, 28);

问题是,我找不到改变颜色的方法。

该事件必须_Paint接受e.Graphics使用,有人可以解释我缺少的东西吗?

1 个答案:

答案 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}}