概要の説明
GcCalendar コントロールの休業日の設定は、HolidayStyles プロパティが参照する HolidayStyleCollection を初めとする下図のオブジェクト(着色された5つ)を使って行います。
休業日の設定に直接関連する部分をさらに詳しく示すと、下図のようになります。WeekdaysとDayOfWeekHolidayPolicy以外のオブジェクトについては、前述の「休日の設定」を参照してください。
Weekdaysオブジェクトには、SundayからSaturdayまでの7つのプロパティが用意されており、これらが参照するDayWeekHolidayPolicy構造体を使って休業日を設定します。
休業日の設定に直接関連する部分をさらに詳しく示すと、下図のようになります。WeekdaysとDayOfWeekHolidayPolicy以外のオブジェクトについては、前述の「休日の設定」を参照してください。
Weekdaysオブジェクトには、SundayからSaturdayまでの7つのプロパティが用意されており、これらが参照するDayWeekHolidayPolicy構造体を使って休業日を設定します。
休業日の設定
休業日は、次の手順で設定します。
- 通常の休日と同じように、HolidayStyle オブジェクトを生成します。
- HolidayStyle オブジェクトの Name プロパティを設定します。
- コントロールの Weekdays プロパティを経由して参照される DayOfWeekStyle オブジェクトの SubStyle プロパティを使って、休業日の日付スタイル(文字色、背景色、太字、下線)を設定します。
- HolidayCollection コレクションの Weekdays プロパティが参照する Weekdays オブジェクトのプロパティ(Sunday〜Saturday)を使うことで、休業日にする曜日を指定します。
- 指定したプロパティ(たとえばWednesday)が参照する DayOfWeekHolidayPolicy 構造体の WeekFlags プロパティで、休業日にする週(例:第2週と第3週)を指定します。
- HolidayStyleオブジェクトを HolidayStyleCollection コレクションに登録します。
- コントロールの 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[]{"休業日"};