Проблема C # с пользовательскими панелями внутри FlowLayoutPanel - PullRequest
2 голосов
/ 08 января 2012

Пожалуйста, дайте мне знать, если вам нужно больше подробностей.

Я создаю вид миниатюр для мультимедиа (изображения, видео, папки), например, окна для файлов.

Я использую FlowLayoutPanel для хранения миниатюр.И Панель , PictureBox и Метка для каждого эскиза.

Я хотел иметь возможность изменить цвет / формат рамки.Я переопределил OnPaint Panel и добавил туда немного кода.

Теперь вот проблема.Переопределение 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);
    }
}

Пожалуйста, дайте мне знать, если мне не хватает какой-либо информации или я недостаточно четко объясняю свою проблему.

Спасибо.

...