我刚刚开始.Net开发(C#)并且遇到了一些让我有点困惑的代码......
如果我有
Form myForm = new Form();
以下行实际上做了什么:
Application.Run(myForm);
它基本上与myForm.ShowDialog()或myForm.Show()做同样的事情(这就是我想的,当运行表单时会这样做).....
我总是发现msdn是向新来者正确解释材料的不良资源
答案 0 :(得分:15)
Application.Run(myForm);
使该表单对用户可见。它是第一种加载到内存中的形式。它在消息循环中运行此表单,以便您获得所有用户事件。
简答:
Application.Run开始在当前线程上运行标准的应用程序消息循环。
长答案:
Application.Run
导致Windows应用程序进入Winmain中的消息循环,以处理操作系统发布到消息队列的各种Windows消息。消息循环“循环”,直到它收到WM_QUIT消息。它使用GetMessage
和PeekMessage
来检索邮件,使用PostMessage
将已审阅的邮件发送到Windows过程。
如果你这样做
Form myForm = new Form();
myForm.Show();
它会显示表格并退出。您将使用new Form()
&当您想从现有表单启动新表单时.Show()
。
希望这能回答你的问题。
答案 1 :(得分:4)
使用主窗体启动应用程序,以便在关闭主窗体时应用程序终止。它将与当前线程相关联。它在消息循环中运行此表单。
消息循环意味着:它们对操作系统发布到应用程序主线程的消息起作用。应用程序通过在名为“事件循环”的代码段中重复调用GetMessage(PeekMessage)函数,从消息队列接收这些消息。