/// <summary> /// アップデートボタン押下時のイベントプロシージャ /// </summary> /// <param name="sender">発生元</param> /// <param name="e">イベントオブジェクト</param> private void btnUpdate_Click(object sender, EventArgs e) { if (MessageBox.Show(this , "最新バージョンにアップデートしてもよろしいですか?" , "アップデート確認" , MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.No) { return; } if (!CheckProcessToBeStoppedWhenUpdate(out var launchingProcesses)) { // 起動中のプロセスがあるため、処理を中断 MessageBox.Show(this , string.Format( "アップデートの際に終了が必要なプロセスが起動しています。\n以下のプロセスを終了後、再度ボタンをクリックしてください。\n\n{0}" , string.Join("\n", launchingProcesses.ToArray())) , "アップデートエラー" , MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } isUpdateCancel = false; progressForm = new FProgress(); progressForm.CancelEvent += () => { isUpdateCancel = true; }; progressForm.Show( appConfig.ApplicationName + " " + "進行状況" , "ファイルダウンロード中" , this , true // キャンセル有無 , OnUpdate // バージョンチェック処理は進行状況フォームの表示が確定してから実行する ); if (isUpdateCancel) { MessageBox.Show(this , "アップデートがキャンセルされました。" , "アップデートキャンセル" , MessageBoxButtons.OK, MessageBoxIcon.Information); } else if (isUpdateSuccess) { logger.Info(string.Format("Update complete. ver: {0} >> {1}", txtLocalVersion.Text, txtLatestVersion.Text)); MessageBox.Show(this , "アップデートが完了しました。" , "アップデート完了" , MessageBoxButtons.OK, MessageBoxIcon.Information); Close(); } }
/// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void FMain_Load(object sender, EventArgs e) { this.Text = appConfig.ApplicationName + " " + "最新バージョンのアップデート"; txtLocalVersion.Text = string.Empty; txtLatestVersion.Text = string.Empty; progressForm = new FProgress(); progressForm.CancelEvent += () => { }; progressForm.Show( appConfig.ApplicationName + " " + "進行状況" , "バージョンチェック中" , this , false // キャンセル有無 , OnCheckVersion // バージョンチェック処理は進行状況フォームの表示が確定してから実行する ); if (isVersionCheckSuccess) { // バージョンチェック成功時 } }