在我的代码中,我将一个矩形绘制为面板的“框架”。我从 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 秒使用一次 Timer,我会检查颜色是否发生了变化,
如果发生了变化,则使用请求的颜色重新绘制矩形。第一个矩形正确绘制。但是当 Timer 达到 30 时,它只是......好吧我什至不确定如何描述它,这是“刷新”后它的图片: