PowerTools MultiRow for Windows Forms 8.0J > InputManCellの使い方 > GcDateTimeCell > ドロップダウンカレンダー > 休業日の設定 |
ドロップダウンカレンダーで、休業日(毎週の定期的な休み)を設定する方法について、以下の3つの項目に分けて解説します。
ドロップダウンカレンダーの休業日の設定は、HolidayStylesプロパティが参照するHolidayStyleCollectionを初めとする下図のオブジェクト(着色された5つ)を使って行います。
休業日の設定に直接関連する部分をさらに詳しく示すと、下図のようになります。WeekdaysとDayOfWeekHolidayPolicy以外のオブジェクトについては、前述の「休日の設定」を参照してください。
Weekdaysオブジェクトには、SundayからSaturdayまでの7つのプロパティが用意されており、これらが参照するDayWeekHolidayPolicy構造体を使って休業日を設定します。
休業日は、次の手順で設定します。
次のサンプルコードは、第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 });