syncfusion-winforms-calendar について
WinForms アプリで Syncfusion の SfCalendar を実装するためのスキルです。日付選択、ビュー移動、外観のカスタマイズ、ローカライズを案内します。
主な機能
- 01月・年・十年・世紀ビュー
- 02単日・複数日・範囲の選択
- 03選択可能な日付範囲の設定
- 04特別な日と選択不可日の指定
- 05テーマ、セルのスタイル、ローカライズ
活用シーン
- 01フォームでの日付選択
- 02予約や休日のカレンダー
- 03予約用の日付範囲選択
- 04利用不可日の設定
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ syncfusion/ winforms-ui-components-skills --skill syncfusion-winforms-calendarインストール後、Claude Code で/syncfusion-winforms-calendarを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/appearance-customization.mddate-selection.mdgetting-started.mdglobalization.mdviews-and-navigation.md詳細
カレンダーの実装(SfCalendar)
このスキルでは、日付選択用の強力なカレンダーコントロールである Syncfusion の SfCalendar の実装方法を説明します。複数のビュー(月、年、10年、世紀)に対応し、包括的なカスタマイズオプション、特別な日付、選択不可の日付、日付範囲の制限をサポートします。
このスキルを使用する場面
次のような場合に、このスキルを使用してください。
- WinForms アプリケーションに日付選択用のカレンダーコントロールを追加する
- 単一または複数の日付を選択できる日付ピッカーを実装する
- 予定やイベントの日付選択機能を作成する
- 日付範囲選択用のインターフェイスを作成する
- 月、年、10年、世紀の各ビューでカレンダーを表示する
- 最小値と最大値の日付範囲で日付選択を制限する
- カスタムアイコンや説明で特別な日付を強調表示する
- 選択不可の日付を使用して、特定の日付を選択できないようにする
- テーマやセルのスタイル設定でカレンダーの外観をカスタマイズする
- さまざまな文化や言語に対応するようカレンダーをローカライズする
- 週末や祝日を強調表示する
- 日付を視覚的に示すスケジュール用インターフェイスを作成する
コンポーネントの概要
コントロール: SfCalendar
名前空間: Syncfusion.WinForms.Input
必要なアセンブリ:
Syncfusion.Core.WinForms.dllSyncfusion.SfInput.WinForms.dllSyncfusion.Shared.Base.dll
主な機能
SfCalendar は、包括的なカレンダー機能を提供します。
- 複数のビュー: 日付をすばやく移動できる、月、年、10年、世紀の各ビュー
- 日付選択: 単一の日付、複数の日付、または日付範囲の選択モード
- 日付の制限: 選択可能な日付範囲を制限する MinDate プロパティと MaxDate プロパティ
- 特別な日付: カスタムアイコンや説明で重要な日付を強調表示
- 選択不可の日付: 特定の日付を、区別しやすいスタイルで選択できないように設定
- 外観: 豊富なテーマ設定、セルのカスタマイズ、視覚スタイル
- グローバリゼーション: 文化に基づくローカライズ、週の開始曜日、日付形式
- ナビゲーション: 今日ボタンとなしボタンを使った、ビュー間の簡単な移動
- アクセシビリティ: さまざまな操作方法に対応するタッチ、キーボード、マウスのサポート
ドキュメントとナビゲーションガイド
はじめに
📄 参照: references/getting-started.md
- インストールとアセンブリの要件
- デザイナーを使用した SfCalendar の追加
- コードを使用した SfCalendar の追加
- 名前空間のインポートと基本設定
- 初期日付の設定
- セットアップの完全な例
日付選択
📄 参照: references/date-selection.md
- 単一日付の選択モード
- 複数の日付の選択
- 日付範囲の選択
- MinDate と MaxDate による制限
- 選択不可の日付(特定の日付の選択を禁止)
- アイコンや説明付きの特別な日付
- 選択変更イベント
- プログラムによる日付選択
イベント
- SelectedDateChanged: 単一の
SelectedDateプロパティが変更されたときに発生します。 - SelectionChanged: 複数選択モードで
SelectedDatesコレクションが変更されたときに発生します。
ビューとナビゲーション
📄 参照: references/views-and-navigation.md
- 月ビュー(既定のビュー)
- 月を選択するための年ビュー
- 年を選択するための10年ビュー
- 10年を選択するための世紀ビュー
- ビュー間の移動
- 今日ボタンの機能
- 選択を解除するためのなしボタン
- ヘッダーのカスタマイズ
外観のカスタマイズ
📄 参照: references/appearance-customization.md
- 視覚スタイルとテーマ(Office2016、Metro など)
- セルのカスタマイズとスタイル設定
- カスタム描画用のセルテンプレート
- 色のカスタマイズ(背景色、前景色、境界線)
- フォントのカスタマイズ
- 週末のセルの強調表示
- 現在の日付の強調表示
- 境界線とパディングの設定
グローバリゼーション
📄 参照: references/globalization.md
- 文化とローカライズのサポート
- 週の開始曜日の設定
- 日付形式のカスタマイズ
- 月名と曜日名のローカライズ
- 右から左(RTL)へのサポート
- 文化固有の暦システム
クイックスタートの例
日付選択機能を備えた基本的なカレンダーを紹介します。
C#:
using Syncfusion.WinForms.Input;
using System;
using System.Windows.Forms;
public class CalendarForm : Form
{
private SfCalendar calendar;
private Label lblSelected;
public CalendarForm()
{
// Create calendar
calendar = new SfCalendar
{
Location = new Point(20, 20),
Size = new Size(350, 300)
};
// Handle selection change
calendar.SelectedDateChanged += Calendar_SelectedDateChanged;
// Create label to show selected date
lblSelected = new Label
{
Location = new Point(20, 330),
Size = new Size(350, 30),
Text = "No date selected"
};
this.Controls.Add(calendar);
this.Controls.Add(lblSelected);
this.Text = "Calendar Example";
this.Size = new Size(400, 420);
}
private void Calendar_SelectedDateChanged(object sender, EventArgs e)
{
if (calendar.SelectedDate.HasValue)
{
lblSelected.Text = $"Selected: {calendar.SelectedDate.Value:D}";
}
}
}
VB.NET:
Imports Syncfusion.WinForms.Input
Imports System
Imports System.Windows.Forms
Public Class CalendarForm
Inherits Form
Private calendar As SfCalendar
Private lblSelected As Label
Public Sub New()
' Create calendar
calendar = New SfCalendar With {
.Location = New Point(20, 20),
.Size = New Size(350, 300)
}
' Handle selection change
AddHandler calendar.SelectedDateChanged, AddressOf Calendar_SelectedDateChanged
' Create label to show selected date
lblSelected = New Label With {
.Location = New Point(20, 330),
.Size = New Size(350, 30),
.Text = "No date selected"
}
Me.Controls.Add(calendar)
Me.Controls.Add(lblSelected)
Me.Text = "Calendar Example"
Me.Size = New Size(400, 420)
End Sub
Private Sub Calendar_SelectedDateChanged(sender As Object, e As EventArgs)
If calendar.SelectedDate.HasValue Then
lblSelected.Text = $"Selected: {calendar.SelectedDate.Value:D}"
End If
End Sub
End Class
よく使われるパターン
パターン 1:範囲制限付きの日付ピッカー
選択可能な日付を特定の範囲に制限します。
C#:
SfCalendar calendar = new SfCalendar();
// Restrict to future dates only (starting from today)
calendar.MinDate = DateTime.Today;
calendar.MaxDate = DateTime.Today.AddMonths(6);
// Set initial date
calendar.SelectedDate = DateTime.Today;
パターン 2:特別な日付を表示する予定選択ツール
予定や特別な日付を強調表示します。
C#:
SfCalendar calendar = new SfCalendar();
// Add special dates (appointments, holidays, etc.)
calendar.SpecialDates.Add(new SpecialDate
{
Date = new DateTime(2026, 3, 25),
Description = "Team Meeting",
IconImage = Properties.Resources.MeetingIcon
});
calendar.SpecialDates.Add(new SpecialDate
{
Date = new DateTime(2026, 3, 28),
Description = "Project Deadline",
IconImage = Properties.Resources.DeadlineIcon
});
パターン 3:複数選択カレンダー
複数の日付を選択できるようにします。
C#:
SfCalendar calendar = new SfCalendar();
// Enable multiple selection
calendar.AllowMultipleSelection = true;
// Get selected dates
calendar.SelectionChanged += (s, e) =>
{
var dates = calendar.SelectedDates;
MessageBox.Show($"Selected {dates.Count} dates");
};
主なプロパティ
| プロパティ | 型 | 説明 |
|---|---|---|
| SelectedDate | DateTime? | 現在選択されている日付を取得または設定します |
| SelectedDates | ObservableCollection<DateTime> | 複数選択用に、選択された日付のコレクションを取得または設定します |
| MinDate | DateTime | 選択可能な最小の日付 |
| MaxDate | DateTime | 選択可能な最大の日付 |
| AllowMultipleSelection | bool | 複数の日付選択を有効にします |
| ShowToday | bool | 今日ボタンを表示または非表示にします |
| ShowNone | bool | 選択を解除するためのなしボタンを表示または非表示にします |
| BlackoutDates | ObservableCollection<DateTime> | 選択対象から除外する日付のコレクション |
| SpecialDates | ObservableCollection<SpecialDate> | アイコンと説明を含む特別な日付のコレクション |
| Culture | CultureInfo | ローカライズと書式設定に使用するカルチャ |
| FirstDayOfWeek | DayOfWeek | 週の開始曜日(日曜日、月曜日など) |
| Style | SfCalendarStyle | 外観のビジュアルスタイル設定 |
よくあるユースケース
- 日付ピッカー:フォームや入力ダイアログでの日付の単一選択
- 予定スケジューラー:特別な日付を強調表示しながら予定の日付を選択
- 日付範囲セレクター:レポートや予約の開始日と終了日を選択
- 祝日カレンダー:カスタムアイコンで祝日や特別なイベントを表示
- 空き状況カレンダー:予約システムで、選択不可の日付を使って利用できない日を設定
- 複数日付セレクター:一括操作や繰り返しイベント用に複数の日付を選択
- ローカライズされたカレンダー:グローバルアプリケーション向けに、さまざまな言語や文化のカレンダーを表示
次のステップ
まず はじめに を参照して SfCalendar をインストール、設定し、その後、アプリケーションの要件に応じて上記のナビゲーションガイドから各機能を確認してください。