2

如果您需要更多详细信息,请告诉我。

我正在为媒体(图像、视频、文件夹)创建一个缩略图视图,类似于文件的 Windows 视图。

我正在使用FlowLayoutPanel来保存缩略图。每个缩略图都有一个PanelPictureBoxLabel

我希望能够更改边框的颜色/格式。我覆盖了面板的 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);
    }
}

如果我遗漏任何信息或者我没有足够清楚地解释我的问题,请告诉我。

谢谢。

4

0 回答 0