внесение изменений в Button в событии OnPaint - PullRequest
1 голос
/ 03 октября 2010

Я пишу один компонент, который расширяет кнопку.

Я настроил свое OnPaint() событие.Я внес некоторые изменения динамически и хочу обновить свой компонент этими новыми деталями.

Как это можно сделать?

Ответы [ 2 ]

3 голосов
/ 03 октября 2010

Хотите перерисовать компонент?Звоните Refresh или Invalidate.

1 голос
/ 03 октября 2010

Ничего особенного не требуется, ваш пользовательский код будет использован, как только кнопка получит свое первое уведомление о рисовании. Возможная ошибка - расположение вызова base.OnPaint (). Это не будет работать, например:

protected override void OnPaint(PaintEventArgs e) {
    // Wrong order:
    e.Graphics.DrawRectangle(Pens.Black, new Rectangle(3, 3, Width - 7, Height - 7));
    base.OnPaint(e);
}

Метод base.OnPaint () рисует внешний вид кнопки по умолчанию, стирая настройки. Вы должны вызвать base.OnPaint () до рисования ваших вещей:

protected override void OnPaint(PaintEventArgs e) {
    base.OnPaint(e);
    e.Graphics.DrawRectangle(Pens.Black, new Rectangle(3, 3, Width - 7, Height - 7));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...