/// <summary> /// <para>コンストラクタ</para> /// </summary> /// <param name="animeData">アニメデータ</param> public DataControlForm(AnimeDataBase animeData) { InitializeComponent(); this.animeData = new AnimeDataBase(animeData); StatusLabel01.Text = animeData.Title + " のデータを操作中"; }
public AnimeDataBase(AnimeDataBase animeDataBase) { this.Count = animeDataBase.Count; this.Title = animeDataBase.Title; this.Place = animeDataBase.Place; this.Info = animeDataBase.Info; this.BroadcastDayOfWeek = animeDataBase.BroadcastDayOfWeek; this.BroadcastStartDay = animeDataBase.BroadcastStartDay; this.LastWatchDay = animeDataBase.LastWatchDay; }
/// <summary> /// データベースに新しくアニメデータを追加するメソッド /// </summary> /// <param name="animeData">アニメデータ</param> /// <returns></returns> public bool AddAnimeData(AnimeDataBase animeData) { try { // タイトルの重複チェック for (int i = 0; i < animeDataBase.Count; i++) { if (animeDataBase[i].Title == animeData.Title) return false; } animeDataBase.Add(new AnimeDataBase(animeData)); } catch { return false; } return true; }
/// <summary> /// <para>コンストラクタ</para> /// <para>編集モードでウィンドウを生成する際に使用します</para> /// </summary> /// /// <param name="placeList">視聴場所のリスト</param> public DataEditForm(AnimeDataBase animeData, AutoCompleteStringCollection placeList) : this(placeList) { this.animeData = new AnimeDataBase(animeData); // データのセット TitleTextBox.Text = animeData.Title; PlaceComboBox.Text = animeData.Place; BroadcastStartDayPicker.Value = animeData.BroadcastStartDay; for (int i = 0; i < BroadcastDayOfWeekComboBox.Items.Count; i++) { if (animeData.BroadcastDayOfWeek == BroadcastDayOfWeekComboBox.Items[i].ToString()) { BroadcastDayOfWeekComboBox.SelectedIndex = i; break; } } // コントロールの無効化 TitleTextBox.Enabled = false; }
// OKボタンを押したときに発生するイベントメソッド private void OKButton_Click(object sender, EventArgs e) { // 値のチェック if (TitleTextBox.Text == "") { MessageBox.Show("タイトルが未入力です"); return; } if (!(BroadcastDayOfWeekComboBox.SelectedIndex != -1)) { MessageBox.Show("放送曜日が選択されていません"); return; } // 有効化状態で追加か編集かを判定 有効 = 追加 if (TitleTextBox.Enabled) { AnimeDataBase animeData = new AnimeDataBase(0, TitleTextBox.Text, PlaceComboBox.Text, "", BroadcastDayOfWeekComboBox.Text, BroadcastStartDayPicker.Value, DateTime.Now); // データの追加 if (((MainForm)this.Owner).AddAnimeData(animeData)) { MessageBox.Show("データを追加しました!"); this.Close(); } else { MessageBox.Show("データの追加に失敗しました"); return; } } else { animeData.Place = PlaceComboBox.Text; animeData.BroadcastDayOfWeek = BroadcastDayOfWeekComboBox.Text; animeData.BroadcastStartDay = BroadcastStartDayPicker.Value; // データの追加 if (((MainForm)this.Owner).EditAnimeData(animeData)) { MessageBox.Show("データを更新しました!"); this.Close(); } else { MessageBox.Show("データの更新に失敗しました"); return; } } }
/// <summary> /// データベースのアニメデータを編集するメソッド /// </summary> /// /// <returns></returns> public bool EditAnimeData(AnimeDataBase animeData) { try { int targetIndex = 0; // タイトルからデータの位置を検索 for (int i = 0; i < animeDataBase.Count; i++) { if (animeDataBase[i].Title == animeData.Title) { targetIndex = i; break; } } // データの修正 animeDataBase[targetIndex].Count = animeData.Count; animeDataBase[targetIndex].Title = animeData.Title; animeDataBase[targetIndex].Place = animeData.Place; animeDataBase[targetIndex].Info = animeData.Info; animeDataBase[targetIndex].BroadcastDayOfWeek = animeData.BroadcastDayOfWeek; animeDataBase[targetIndex].BroadcastStartDay = animeData.BroadcastStartDay; animeDataBase[targetIndex].LastWatchDay = animeData.LastWatchDay; DataBaseView.Refresh(); } catch { return false; } return true; }