переопределенный метод не вызывается - PullRequest
0 голосов
/ 05 июля 2011
public partial class Form1 : Form
{
   protected override void  WndProc(ref Message m)
   {
       base.WndProc(ref m);
   }
}

[STAThread]
static void Main()
{
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);
    Application.Run(new Form1());
}

Когда я запустил приведенный выше код, он вызвал метод protected override void WndProc(ref Message m)

Когда я изменил код, как показано ниже

Form1 form1 = new Form1();
Application.Run();

это не вызывало метод protected override void WndProc(ref Message m)

Может кто-нибудь объяснить мне, почему это происходит?

Ответы [ 3 ]

5 голосов
/ 05 июля 2011

Когда вы вызываете Application.Run (), вы запускаете приложение без формы.

См. http://msdn.microsoft.com/en-us/library/system.windows.forms.application.run.aspx о разнице.

Верхний элемент, который вы передаете свою форму в качестве параметра вызову функции Application.Run, что позволяет ей использовать вашу форму,во втором случае он понятия не имеет, какую форму использовать.

1 голос
/ 22 марта 2013

Когда вы вызываете Application.Run (), вы запускаете приложение без формы.

0 голосов
/ 05 июля 2011

Зачем это нужно, если во втором примере кода нет реальной формы, отображаемой и используемой в приложении?

...