如果您需要更多详细信息,请告诉我。
我正在为媒体(图像、视频、文件夹)创建一个缩略图视图,类似于文件的 Windows 视图。
我正在使用FlowLayoutPanel来保存缩略图。每个缩略图都有一个Panel、PictureBox和Label。
我希望能够更改边框的颜色/格式。我覆盖了面板的 OnPaint 并在其中添加了一些代码。
现在问题来了。OnPaint 覆盖不会被调用。一次都无。所以我的彩色边框根本没有出现。如果我将一个拖到它呈现良好的表单上,则会调用覆盖......所以它必须与 FlowLayoutPanel 有关。
自定义面板:
public class MediaPanel : System.Windows.Forms.Panel
{
public MediaPanel()
{
this.SetStyle(ControlStyles.AllPaintingInWmPaint
| ControlStyles.UserPaint
| ControlStyles.OptimizedDoubleBuffer
| ControlStyles.ResizeRedraw, true);
}
protected override void OnPaint(PaintEventArgs e)
{
ControlPaint.DrawBorder(e.Graphics, this.ClientRectangle,
Color.Red, ButtonBorderStyle.Solid);
}
}
如果我遗漏任何信息或者我没有足够清楚地解释我的问题,请告诉我。
谢谢。