/// <summary> /// 追加ボタン押下. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void CallBackBtnAddCharactorClick(object sender, System.EventArgs e) { var name = this.txtbCharactorName.Text; // 空欄は無視. if (name.IsEmpty()) { return; } // 無効な名前の場合は無視. if (Nothing.Equals(name)) { MessageBox.Show("[{0}]は無効な名前です".Fmt(name), Ssm.Title); return; } // ファイルパスを生成. var path = Requirement.CreatePathFromeName(name); if (File.Exists(path)) { MessageBox.Show("[{0}]は既に存在しています".Fmt(name), Ssm.Title); return; } // 選択を取得 var srcName = this.cmbSelectedCharactor.SelectedObj <string>(); // メッセージの生成. var header = "新たに"; if (this.chkTakeOver.Checked) { header = "[{0}]の設定を引き継いで、".Fmt(srcName); } var message = header + "[{0}]を作成します。\nよろしいですか?\n\n※ この操作はキャンセルできません。".Fmt(name); // メッセージを表示. if (DialogResult.Yes != MessageBox.Show(message, Ssm.Title, MessageBoxButtons.YesNo)) { return; } // 新たな設定を生成. var requirement = new Requirement(); // 引き継ぐ場合. if (this.chkTakeOver.Checked) { requirement = Requirement.LoadCharactor(srcName); } // 保存する. requirement.Save(path); // 更新する. this.UpdateCharactorList(); }
/// <summary> /// 削除ボタン押下. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void CallBackBtnDeleteCharactorClick(object sender, System.EventArgs e) { // デフォルトが選択されている場合. if (0 == this.cmbSelectedCharactor.SelectedIndex) { return; } // 選択を取得 var name = this.cmbSelectedCharactor.SelectedObj <string>(); // ファイルパスを生成. var path = Requirement.CreatePathFromeName(name); if (File.Exists(path)) { // メッセージを表示. if (DialogResult.Yes != MessageBox.Show("[{0}]を削除します。\nよろしいですか?\n\n※ この操作はキャンセルできません。".Fmt(name), Ssm.Title, MessageBoxButtons.YesNo)) { return; } try { File.Delete(path); // 現在選択されているキャラクターが削除された場合. if (this.CurrentRequirement.FilePath == path) { this.btnCancel.Enabled = false; MessageBox.Show("現在選択中のキャラクタ[{0}]が削除されました。\n別のキャラクタを選択してください".Fmt(name), Ssm.Title); } } catch (Exception ex) { Log.Write("ファイル[{0}]の削除に失敗しました\n[{1}]".Fmt(path, ex.Message)); return; } } else { MessageBox.Show("[{0}]は既に存在していません".Fmt(name), Ssm.Title); } // 更新する. this.UpdateCharactorList(); }