using DevExpress.LookAndFeel; using DevExpress.XtraEditors.Controls; using Mapster; using System; using System.Reflection; using System.Windows.Forms; namespace HStation.Desktop { internal static class Program { /// /// 应用程序的主入口点。 /// [STAThread] private static void Main() { using (var mutex = new System.Threading.Mutex(true, Application.ProductName, out bool createNew)) { if (!createNew) { MessageBox.Show("程序正在运行中..."); Application.Exit(); return; } //DevExpress.UserSkins.BonusSkins.Register(); DevExpress.LookAndFeel.UserLookAndFeel.Default.SetSkinStyle("Bezier");//Visual Studio 2013 Light DevExpress.LookAndFeel.UserLookAndFeel.Default.SetSkinStyle(SkinSvgPalette.Bezier.OfficeColorful); DevExpress.Skins.SkinManager.EnableFormSkins(); System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("zh-Hans"); System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("zh-Hans"); //处理未捕获的异常 Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException); //处理UI线程异常 Application.ThreadException += Application_ThreadException; //处理非UI线程异常 AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; Application.EnableVisualStyles(); 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; DevExpress.XtraEditors.Controls.Localizer.Active = new XtraMessBoxClass(); //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); //扫描全局DTO映射 TypeAdapterConfig.GlobalSettings.Scan(Assembly.Load("Yw.BLL.Auth.Core"), Assembly.Load("HStation.BLL.Xhs.Core")); var loginHelper = new LoginHelper(); if (!loginHelper.Login()) return; var result = HStation.Service.Organize.DbFirstHelper.Initial(out string msg); Application.Run(new GuideMain()); } } /// /// 这就是我们要在发生未处理异常时处理的方法,我这是写出错详细信息到文本,如出错后弹出一个漂亮的出错提示窗体,给大家做个参考 /// 做法很多,可以是把出错详细信息记录到文本、数据库,发送出错邮件到作者信箱或出错后重新初始化等等 /// 这就是仁者见仁智者见智,大家自己做了。 /// /// /// private static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e) { var ex = e.Exception; Yw.LogHelper.Error("系统出现未知异常,ERROR:249", ex); MessageBox.Show($"系统出现未知异常,请重启系统!\r\n{ex.Message}"); } private static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e) { var ex = e.ExceptionObject as Exception; Yw.LogHelper.Error("系统出现未知异常,ERROR:255", ex); MessageBox.Show($"系统出现未知异常,请重启系统!\r\n{ex.Message}"); } public class XtraMessBoxClass : Localizer { public override string GetLocalizedString(DevExpress.XtraEditors.Controls.StringId id) { switch (id) { case StringId.XtraMessageBoxCancelButtonText: return "取消"; case StringId.XtraMessageBoxOkButtonText: return "确定"; case StringId.XtraMessageBoxYesButtonText: return "是"; case StringId.XtraMessageBoxNoButtonText: return "否"; case StringId.XtraMessageBoxIgnoreButtonText: return "忽略"; case StringId.XtraMessageBoxAbortButtonText: return "中止"; case StringId.XtraMessageBoxRetryButtonText: return "重试"; default: return base.GetLocalizedString(id); } } } } }