2011-01-30 5 views
0

я создал свой собственный контроль и перезаписать OnPaint событие, проблема заключается в том, что событие краска перестала работатьне может вызвать краску

Любые идеи, почему? И как его восстановить?

+2

код пожалуйста .... – Femaref

+1

Определить «перестает работать» - что происходит (или нет), и в каком сценарии? –

+0

this.Paint + = новый PaintEventHandler (myControl_Paint); – unicorn

ответ

4

Давайте телепатическая догадка здесь:

Вы забыли вызвать base.OnPaint(...) внутри переопределения. Это означает, что базовая функциональность больше не вызывается.

+2

Психическая отладка; всегда весело :) –

+0

+1: Это 90%, вероятно, проблема. –

+0

не забыл, я сделал это нарочно, это единственный способ вернуть событие краски? – unicorn

0

Возможно, контроль затенен. У меня была аналогичная проблема, и проблема заключалась в том, что форма в представлении «Дизайнер» была больше, чем фактическая форма при запуске приложения. У моего пользовательского элемента управления были привязки со всех сторон, и когда основная форма была уменьшена в размерах, пользовательский элемент управления достиг нулевого размера (на самом деле, я думаю, отрицательно).

В этом режиме переопределение OnPaint и делегат, назначенный событию Paint, вообще не вызываются.

Увеличьте свою форму и убедитесь, что вы случайно не уменьшили размер до нуля!

Смежные вопросы