PowerTools PlusPak for Windows Forms 8.0J
休業日の設定

GcCalendar コントロールで、休業日(毎週の定期的な休み)を設定する方法について、以下の項目に分けて解説します。
概要の説明
GcCalendar コントロールの休業日の設定は、HolidayStyles プロパティが参照する HolidayStyleCollection を初めとする下図のオブジェクト(着色された5つ)を使って行います。


休業日の設定に直接関連する部分をさらに詳しく示すと、下図のようになります。WeekdaysとDayOfWeekHolidayPolicy以外のオブジェクトについては、前述の「休日の設定」を参照してください。


Weekdaysオブジェクトには、SundayからSaturdayまでの7つのプロパティが用意されており、これらが参照するDayWeekHolidayPolicy構造体を使って休業日を設定します。
休業日の設定
休業日は、次の手順で設定します。

  1. 通常の休日と同じように、HolidayStyle オブジェクトを生成します。
  2. HolidayStyle オブジェクトの Name プロパティを設定します。
  3. コントロールの Weekdays プロパティを経由して参照される DayOfWeekStyle オブジェクトの SubStyle プロパティを使って、休業日の日付スタイル(文字色、背景色、太字、下線)を設定します。
  4. HolidayCollection コレクションの Weekdays プロパティが参照する Weekdays オブジェクトのプロパティ(Sunday〜Saturday)を使うことで、休業日にする曜日を指定します。
  5. 指定したプロパティ(たとえばWednesday)が参照する DayOfWeekHolidayPolicy 構造体の WeekFlags プロパティで、休業日にする週(例:第2週と第3週)を指定します。
  6. HolidayStyleオブジェクトを HolidayStyleCollection コレクションに登録します。
  7. コントロールの ActiveHolidayStyles プロパティを使って、登録したHolidayStyleオブジェクトを有効にします。


サンプルコード
次のサンプルコードは、第2と第4の土曜日を休業日に設定します。

Imports GrapeCity.Win.Calendar

' 休日スタイルを生成します。
Dim aHS As HolidayStyle = New HolidayStyle()
' 休日スタイルの名称を設定します。
aHS.Name = "休業日"
' 第2と第4土曜日を休業日に設定します。
aHS.Holidays.Weekdays.Saturday = New DayOfWeekHolidayPolicy(WeekFlags.SecondWeek Or WeekFlags.FourthWeek, HolidayOverride.None)
' 休業日の表示スタイルを設定します。
GcCalendar1.Weekdays.Saturday.SubStyle = New SubStyle(Color.WhiteSmoke, Color.Red, True, False)
GcCalendar1.Weekdays.Saturday.WeekFlags = WeekFlags.SecondWeek Or WeekFlags.FourthWeek
' 設定が完了した休日スタイルを登録します。
GcCalendar1.HolidayStyles.Add("休業日", aHS)
' 登録した休日スタイルをコントロールに反映させます。
GcCalendar1.ActiveHolidayStyles = New string(){"休業日"}
using GrapeCity.Win.Calendar;

// 休日スタイルを生成します。
HolidayStyle aHS = new HolidayStyle();
// 休日スタイルの名称を設定します。
aHS.Name = "休業日";
// 第2と第4土曜日を休業日に設定します。
aHS.Holidays.Weekdays.Saturday = new DayOfWeekHolidayPolicy(WeekFlags.SecondWeek | WeekFlags.FourthWeek, HolidayOverride.None);
// 休業日の表示スタイルを設定します。
gcCalendar1.Weekdays.Saturday.SubStyle = new SubStyle(Color.WhiteSmoke, Color.Red, true, false);
gcCalendar1.Weekdays.Saturday.WeekFlags = WeekFlags.SecondWeek | WeekFlags.FourthWeek;
// 設定が完了した休日スタイルを登録します。
gcCalendar1.HolidayStyles.Add("休業日", aHS);
// 登録した休日スタイルをコントロールに反映させます。
gcCalendar1.ActiveHolidayStyles = new string[]{"休業日"};
   
参照