所以,我对windows forms开发很不熟悉。
我正在尝试创建一个“嘿,我正忙着做事”的组件,它只是旋转一个形状。我希望这个控件是瞬态的,并在任何其他控件之上绘制。该类直接继承自 Control。
所以我在构造函数中有这个:
SetStyle(ControlStyles.Opaque, true);
还有这个:
protected override CreateParams CreateParams
{
get
{
CreateParams parms = base.CreateParams;
parms.ExStyle |= 0x20;
return parms;
}
}
这让我得到了一个可以在其他控件之上绘制的控件。
现在我的问题是这个。我每秒重绘几次控件,以提供平滑动画的外观。但是,我不知道如何清除前一帧中绘制的内容。轮流使用整个控件黑色e.Graphics.Clear(Color.Transparent)
。OnPaint
有没有办法只清除控件的绘制内容?
我注意到调整控件大小会清除背景。
不起作用的事情
- 覆盖 OnPaintBackground 什么都不做。或者只是调用 base.OnPaintBackground。结果相同。