我正在写我的第一个C#Windows Forms应用程序,并且是新编程(我已经完成了excel宏,几年前我曾经写过嵌入式东西,但是我只是一个服务台无人机,试图为我的外国人做些什么语言研究),而我却基本上不知道自己在做什么,并且经常搜索很多东西,这通常是可行的,但是我整天都被困在那儿。
我的应用程序访问数据库,只要启动就可以了。我有try / catch / finally用于数据库访问,当出现错误时,它会显示详细信息,然后关闭该应用程序-除非它仍作为任务管理器中的后台进程存在,而且我无法弄清楚它的失败原因杀。
main.cs有
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
StartupScreen MainScreen = new StartupScreen();
MainScreen.Show();
Application.Run();
Application.Exit();
}
错误的陷阱是
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Error 7");
if (conn2 != null)
{
conn2.Close();
}
this.Close();
Application.Exit();
}
如果没有错误,则当用户单击退出按钮或X时,它会干净地退出,但是如果数据库存在嘶嘶作风,则必须通过任务管理器将其退出是不理想的。我没有有意启动任何后台进程,Visual Studio将STAThread放在main.cs上,我猜这意味着它是一个单线程应用程序,但是我只是在几周前才开始尝试这样做,并且我可怜的小人文学科学生的大脑无法应付。
在WinForm中尝试/捕获错误的方法吗?我开始的初学者指南是关于控制台应用程序的,这就是在那里所说的,但是我对所有这些的基本假设是,我缺少任何对有能力的人都明显的东西...
你Main
有点奇怪。标准的一个更像是:
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new StartupScreen());
}
您无需Application.Exit()
在Main
或内部通过致电catch
。
在中catch
,调用this.Close()
将关闭表单,使您Application.Run
完成填写,这就是您的结束Main
,因此应用程序将退出。
另外,您是否要从Visual Studio运行程序?如果任务管理器中的过程称为yourapplication.vshost.exe
,则不必担心-Visual Studio使用它来帮助调试。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句