詳細が必要な場合はお知らせください。
ファイルのウィンドウ ビューのように、メディア (画像、ビデオ、フォルダー) のサムネイル ビューを作成しています。
サムネイルを保持するためにFlowLayoutPanelを使用しています。各サムネイルのPanel、PictureBox、およびLabel 。
境界線の色/形式を変更できるようにしたかったのです。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);
}
}
情報が不足している場合や、問題を十分に説明していない場合はお知らせください。
ありがとう。