在我的代码中,我正在绘制一个矩形作为面板的“框架”。我从XML文件中获取所需的颜色作为字符串(如“红色”,“蓝色”等)。在创建面板中,我使用此代码画吧:在面板上重绘矩形
Strip.Paint += (sender, e) =>
{
//MessageBox.Show(clr.ToString());
Pen p = new Pen(Color.FromName(color), 2); // color is the string with name of the color
Rectangle r = new Rectangle(1, 1, 286, 36);
e.Graphics.DrawRectangle(p, r);
p.Dispose();
e.Dispose();
};
在是应该刷新矩形的方法,我加入这一行
Strip.Refresh();
这工作得很好。但是,每隔30秒使用计时器,我会检查颜色是否发生了变化,如果发生变化,请使用请求的颜色重新绘制矩形。第一个矩形绘制正确。但是,当计时器达到30时,它只是...嗯,我不知道如何描述它,这里是图片“刷新”后的功能:
注意:它不应该是刷新后的红色,我不知道为什么它会把所有的东西都变成红色.. –
好吧,我发现它为什么越过_all_,我在代码中有一个错误,判断颜色是否已经改变或不。所以对于那些不应该重绘的人来说没问题。但是当颜色改变时,它仍然会这样做。 –