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

ドロップダウンカレンダーで、休業日(毎週の定期的な休み)を設定する方法について、以下の3つの項目に分けて解説します。

概要の説明

ドロップダウンカレンダーの休業日の設定は、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)が参照するDayOfWeekdayPolicy構造体のWeekFlagsプロパティで、休業日にする週(例:第2週と第3週)を指定します。
  6. HolidayStyleオブジェクトをHolidayStyleCollectionコレクションに登録します。
  7. コントロールのActiveHolidayStylesプロパティを使って、登録したHolidayStyleオブジェクトを有効にします。
サンプルコード

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

Imports GrapeCity.Win.MultiRow
Imports InputManCell = GrapeCity.Win.MultiRow.InputMan

' 休日スタイルを生成します。 
Dim aHS As InputManCell.HolidayStyle = New InputManCell.HolidayStyle()
' 休日スタイルの名称を設定します。 
aHS.Name = "休業日"
' 第2と第4土曜日を休業日に設定します。 
aHS.Holidays.Weekdays.Saturday = New GrapeCity.Win.Editors.DayOfWeekHolidayPolicy(
    GrapeCity.Win.Editors.WeekFlags.SecondWeek Or GrapeCity.Win.Editors.WeekFlags.FourthWeek,
    GrapeCity.Win.Editors.HolidayOverride.None)


Dim GcDateTimeCell1 As New InputManCell.GcDateTimeCell()
GcDateTimeCell1.Name = "GcDateTimeCell1"

' 休業日の表示スタイルを設定します。 
GcDateTimeCell1.DropDownCalendar.Weekdays.Saturday.SubStyle = New InputManCell.SubStyle(Color.WhiteSmoke, Color.Red, True, False)
GcDateTimeCell1.DropDownCalendar.Weekdays.Saturday.WeekFlags = GrapeCity.Win.Editors.WeekFlags.SecondWeek Or
    GrapeCity.Win.Editors.WeekFlags.FourthWeek
' 設定が完了した休日スタイルを登録します。 
GcDateTimeCell1.DropDownCalendar.HolidayStyles.Add("休業日", aHS)
' 登録した休日スタイルをコントロールに反映させます。 
GcDateTimeCell1.DropDownCalendar.ActiveHolidayStyles = New String() {"休業日"}

GcMultiRow1.Template = Template.CreateGridTemplate(New Cell() {GcDateTimeCell1})
using GrapeCity.Win.MultiRow;
using InputManCell = GrapeCity.Win.MultiRow.InputMan;

// 休日スタイルを生成します。 
InputManCell.HolidayStyle aHS = new InputManCell.HolidayStyle();
// 休日スタイルの名称を設定します。 
aHS.Name = "休業日";
// 第2と第4土曜日を休業日に設定します。 
aHS.Holidays.Weekdays.Saturday = new GrapeCity.Win.Editors.DayOfWeekHolidayPolicy(
    GrapeCity.Win.Editors.WeekFlags.SecondWeek | GrapeCity.Win.Editors.WeekFlags.FourthWeek,
    GrapeCity.Win.Editors.HolidayOverride.None);

InputManCell.GcDateTimeCell gcDateTimeCell1 = new InputManCell.GcDateTimeCell();
gcDateTimeCell1.Name = "gcDateTimeCell1";

// 休業日の表示スタイルを設定します。
gcDateTimeCell1.DropDownCalendar.Weekdays.Saturday.SubStyle = new InputManCell.SubStyle(Color.WhiteSmoke, Color.Red, true, false);
gcDateTimeCell1.DropDownCalendar.Weekdays.Saturday.WeekFlags = GrapeCity.Win.Editors.WeekFlags.SecondWeek |
    GrapeCity.Win.Editors.WeekFlags.FourthWeek;
// 設定が完了した休日スタイルを登録します。 
gcDateTimeCell1.DropDownCalendar.HolidayStyles.Add("休業日", aHS);
// 登録した休日スタイルをコントロールに反映させます。 
gcDateTimeCell1.DropDownCalendar.ActiveHolidayStyles = new string[] { "休業日" };

gcMultiRow1.Template = Template.CreateGridTemplate(new Cell[] { gcDateTimeCell1 });
参照

 

 


© 2008-2015 GrapeCity inc. All rights reserved.