public static void Main(string[] args) { settings = new Settings(Platform.SupportDir + "settings.yaml", new Arguments()); var form = new Form { Size = new Size(315, 140), Text = "Fatal Error", MinimizeBox = false, MaximizeBox = false, FormBorderStyle = FormBorderStyle.FixedDialog, StartPosition = FormStartPosition.CenterScreen, Icon = Icon.ExtractAssociatedIcon(Assembly.GetExecutingAssembly().Location) }; var notice = new Label { Location = new Point(10, 10), AutoSize = true, Text = "OpenRA has encountered a fatal error and must close.{0}Refer to the crash logs and FAQ for more information.".F(Environment.NewLine), TextAlign = ContentAlignment.TopCenter }; form.Controls.Add(notice); var dontShowAgain = new CheckBox { Location = new Point(25, 50), AutoSize = true, Text = "Don't show this message again", }; form.Controls.Add(dontShowAgain); var viewLogs = new Button { Location = new Point(10, 80), Size = new Size(75, 23), Text = "View Logs" }; viewLogs.Click += ViewLogsClicked; form.Controls.Add(viewLogs); var viewFaq = new Button { Location = new Point(90, 80), Size = new Size(75, 23), Text = "View FAQ" }; viewFaq.Click += ViewFaqClicked; form.Controls.Add(viewFaq); var quit = new Button { Location = new Point(225, 80), Size = new Size(75, 23), Text = "Quit" }; quit.DialogResult = DialogResult.Cancel; form.Controls.Add(quit); form.FormClosed += (sender, e) => { settings.Debug.ShowFatalErrorDialog = !dontShowAgain.Checked; settings.Save(); }; SystemSounds.Exclamation.Play(); form.ShowDialog(); }