如果您需要更多详细信息,请与我们联系。
我正在为媒体(图片,视频,文件夹)创建缩略图视图,就像文件的Windows视图一样。
我正在使用 FlowLayoutPanel 来保存缩略图。每个缩略图都有面板, PictureBox 和标签。
我希望能够更改边框的颜色/格式。我重写了Panel的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);
}
}
如果我遗漏了任何信息或者我没有清楚地解释我的问题,请告诉我。
感谢。