Я пытаюсь создать свой собственный пользовательский элемент управления для приложения форм Windows в C # .Net. В настоящее время я рисую некоторые прямоугольники и другие графические элементы, используя событие рисования.
Теперь, когда я изменяю размер формы приложения, чтобы она соответствовала размеру рабочего стола, все элементы перекрашиваются (это именно то поведение, которое мне нужно), но старые отображаются на заднем плане.
Вот что я сейчас делаю:
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 (...) не скроют старый прямоугольник с поверхности.
Идеи? Спасибо всем.