除了来自main的program.cs之外,是否可以在另一个cs文件中设置启动表单? 从main:
在program.cs中将表单设置为启动对象的代码Application.Run(new MyForm());
因此,例如,是否可以将Form2中的启动对象设置为Form2,而Form2不是启动对象(但希望如此)>?
要具体:我想以编程方式在启动时显示form2,而Form1被设置为启动对象。我需要将该代码放在form2本身。所以我不能简单地通过Form1打开Form2。
提前致谢!
答案 0 :(得分:5)
不是将启动逻辑放在表单中,而是由ApplicationContext提供更好的服务。
http://msdn.microsoft.com/en-us/library/system.windows.forms.applicationcontext(v=vs.110).aspx
不是启动表单,而是使用[STAThread] Main()函数创建一个类,并将该类作为启动对象。在该类中,您可以进行一些设置(例如,验证密钥日志记录功能是否存在),然后
//ExampleContext is defined as ExampleContext : ApplicationContext
using (ExampleContext exampleContext = new ExampleContext())
{
Application.Run(exampleContext); //The context handles the login and main forms.
}
在应用程序上下文中,您可以自由打开和关闭表单,并且可以维护一个能够跟踪它们的全局状态。关闭表单不会关闭您的应用程序,允许您有多个表单对您的用户显示为“顶级”。
要退出应用程序,请让您的上下文调用Application.Exit()
而不是关闭“主”表单(因为没有这样的动物)。
答案 1 :(得分:0)
根据您的评论,听起来您想要做的只是创建并展示新表格。您需要做的就是将这样的代码放在Button_Click事件中:
Form2 newForm2 = new Form2();
newForm2.Show();