C#.Net で Windows フォーム アプリケーション用の独自のカスタム コントロールを構築しようとしています。現在、ペイント イベントを使用して、いくつかの四角形やその他のグラフィック要素をペイントしています。デスクトップのサイズに合わせてアプリ フォームのサイズを変更すると、すべての要素が再描画されます (これはまさに私が必要とする動作です) が、古い要素は背景に表示されます。
ここに私が今やっていることがあります:
Pen penDefaultBorder = new Pen(Color.Wheat, 1);
int margin = 5;
private void CustomControl_Paint(object sender, PaintEventArgs e) {
CustomControl calendar = (CustomControl)sender;
Graphics graphics = e.Graphics;
graphics.Clear(Color.WhiteSmoke);
graphics.DrawRectangle(penDefaultBorder, margin, margin, calendar.Width - margin * 2, calendar.Height - margin * 2);
//...
}
graphics.Clear も、graphics.FillRectangle(...) の追加も、古い四角形を表面から隠しません。
アイデア?皆さん、ありがとうございました。