/// <summary>表示期間が変更された /// </summary> /// <param name="sender">イベントの発生したオブジェクト</param> /// <param name="e">発生したイベント</param> void mainForm_OnDisplayPeriodChanged(object sender, DisplayPeriodChangedEventArgs e) { Clear(); LoopStart = e.Start.Date; ViewStart = e.Start.Date; LoopEnd = e.End.Date; Run(); }
/// <summary> 行数の取得 /// </summary> public void NotifyDisplayPeriodChanged() { //CalenderView.CurrentCellChanged; // 行数の獲得 int row = 0; TimeSpan span = EndDate - StartDate; row = span.Days + 1; this.CalenderView.RowCount = row; // if (TimeTable != null) { // 人員配置の候補作成 ResetRequires(); // シフトの候補作成 ResetPatterns(); // 列の再構成 ResetMembers(); // イベント発生 if (OnDisplayPeriodChanged != null) { DisplayPeriodChangedEventArgs e = new DisplayPeriodChangedEventArgs(StartDate, EndDate); OnDisplayPeriodChanged(this, e); } if (MainForm != null) { // 選択リストの作成 List <DateTime> workList = new List <DateTime>(); for (int i = 0; i < CalenderView.SelectedRows.Count; i++) { DataGridViewRow row2 = CalenderView.SelectedRows[i]; DateTime date = this.GetDateFromRowIndex(row2.Index); workList.Add(date); } // 選択されていなかったら現在行を追加する if (workList.Count == 0) { workList.Add(CurrentRowDate); } else { workList.Sort(); } selectedDates = workList; MainForm.ViewSelectionChanged(SelectedDates); } } else { // タイムテーブルが設定されていない EndDate = StartDate; this.CalenderView.RowCount = 0; } }