SetStyle( ControlStyles.OptimizedDoubleBuffer | ControlStyles.ResizeRedraw | ControlStyles.Selectable | ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint | ControlStyles.SupportsTransparentBackColor, true); 将这段代码加到用户控件的构造函数中即可生效。 这段代码的主要功能是开启了双缓冲。 平时我以为开双缓冲只需要设置ControlStyles.OptimizedDoubleBuffer为true而已。 但是经过实践才发现,起关键作用的是OptimizedDoubleBuffer和AllPaintingInWmPaint两个。 当这两个都为true的时候。闪烁几乎消失。效果非常好。