using DevExpress.LookAndFeel; using DevExpress.XtraEditors; using System; using System.Windows.Forms; namespace HStation.Desktop { internal static class Program { [STAThread] static void Main() { using (var mutex = new System.Threading.Mutex(true, Application.ProductName, out bool createNew)) { if (!createNew) { MessageBox.Show("程序正在运行中..."); Application.Exit(); return; } } //处理未捕获的异常 Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException); //处理UI线程异常 Application.ThreadException += Application_ThreadException; //处理非UI线程异常 AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); System.Windows.Forms.Application.EnableVisualStyles(); System.Windows.Forms.Application.SetCompatibleTextRenderingDefault(false); //字体 var font = new System.Drawing.Font("微软雅黑", 10); DevExpress.XtraEditors.WindowsFormsSettings.DefaultFont = font; DevExpress.XtraEditors.WindowsFormsSettings.DefaultMenuFont = font; DevExpress.Utils.AppearanceObject.DefaultFont = font; //zh-Hans界面翻译 System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("zh-Hans"); System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("zh-Hans"); //皮肤 DevExpress.LookAndFeel.UserLookAndFeel.Default.SetSkinStyle(SkinStyle.WXICompact); //初始化日志 //LogHelper.Initial(); //初始化雪花Id //SnowflakeIdHelper.InitIdGenerator(1); //var db = new MainDbContext(); //db.InitTables(); //登录 //if (!LoginHelper.Login()) // return; var frmMain = new HStation.Desktop.GuideMain(); Application.Run(frmMain); } /// /// 这就是我们要在发生未处理异常时处理的方法,我这是写出错详细信息到文本,如出错后弹出一个漂亮的出错提示窗体,给大家做个参考 /// 做法很多,可以是把出错详细信息记录到文本、数据库,发送出错邮件到作者信箱或出错后重新初始化等等 /// 这就是仁者见仁智者见智,大家自己做了。 /// /// /// private static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e) { var ex = e.Exception; //LogHelper.Error(ex.Message); XtraMessageBox.Show($"系统出现未知异常,请重启系统!\r\n{ex.Message}"); } private static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e) { var ex = e.ExceptionObject as Exception; //LogHelper.Error(ex.Message); XtraMessageBox.Show($"系统出现未知异常,请重启系统!\r\n{ex?.Message}"); } } }