private static bool GetSolutionFile(string[] startupArgs, ref string[] cachedSolutionFiles, ref string solutionFolder, out string fileName) { if (startupArgs?.Length > 0 && File.Exists(startupArgs[0])) { fileName = startupArgs[0]; return(true); } else { frmOpenSolution dlg = new frmOpenSolution() { SolutionFolder = solutionFolder, SolutionFiles = cachedSolutionFiles }; while (true) { if (dlg.ShowDialog() == DialogResult.OK) { fileName = dlg.SelectedFilename; solutionFolder = dlg.SolutionFolder; cachedSolutionFiles = dlg.SolutionFiles; return(true); } else { solutionFolder = dlg.SolutionFolder; cachedSolutionFiles = dlg.SolutionFiles; if (MessageBox.Show("Please select a solution or Cancel to exit.", "Open Solution", MessageBoxButtons.OKCancel) == DialogResult.Cancel) { break; } } } } fileName = null; return(false); }
private async void llOpenSolution_Click(object sender, EventArgs e) { try { frmOpenSolution dlg = new frmOpenSolution() { SolutionFiles = _settings.SolutionFiles?.ToArray(), SolutionFolder = _settings.SolutionFolder }; if (dlg.ShowDialog() == DialogResult.OK) { await LoadSolutionAsync(dlg.SelectedFilename); } _settings.SolutionFolder = dlg.SolutionFolder; _settings.SolutionFiles = dlg.SolutionFiles?.ToList(); } catch (Exception exc) { MessageBox.Show(exc.Message); } }