У меня есть решение VS2010 (пытался имитировать мою основную проблему), которое имеет 2 проекта, и каждый проект имеет по одной форме окна. Mainform находится в проекте_1, который имеет ссылку на проект 2, где определена ChildForm.
У меня есть кнопка на MainForm, событие нажатия кнопки которой создает ChildForm и показывает. Пока отображается ChildForm, я могу вызывать любые команды меню (каждая команда меню реализована для отображения окна сообщения), которые определены в MainForm без каких-либо проблем.
НО, с другой стороны, я сохранил весь код как есть и переопределил метод OnPaint для ChildForm с помощью this.Invalidate(), как показано ниже.
protected override void OnPaint(PaintEventArgs e)
{
this.Invalidate();
base.OnPaint(e);
}
Я запустил исполняемый файл, и он открыл мою основную форму и нажал кнопку, чтобы открыть мою дочернюю форму, затем щелкнул одну из команд меню, чтобы открыть окно сообщения, затем я обнаружил, что и основная форма, и дочерняя форма зависли и зависли без ответа.
Может ли кто-нибудь пролить свет на то, что пошло не так с переопределением метода OnPaint, который каждый раз выполняет строку this.Invalidate(), и предложить, как я могу решить эту проблему.
С уважением, Кумар