mcpField
S
syncfusion-winforms-calendar

syncfusion-winforms-calendar

github.com/syncfusion開発278 回インストール1 週間前に更新
リポジトリ

syncfusion-winforms-calendar について

WinForms アプリで Syncfusion の SfCalendar を実装するためのスキルです。日付選択、ビュー移動、外観のカスタマイズ、ローカライズを案内します。

主な機能

  1. 01月・年・十年・世紀ビュー
  2. 02単日・複数日・範囲の選択
  3. 03選択可能な日付範囲の設定
  4. 04特別な日と選択不可日の指定
  5. 05テーマ、セルのスタイル、ローカライズ

活用シーン

  1. 01フォームでの日付選択
  2. 02予約や休日のカレンダー
  3. 03予約用の日付範囲選択
  4. 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.md
date-selection.md
getting-started.md
globalization.md
views-and-navigation.md

詳細

カレンダーの実装(SfCalendar)

このスキルでは、日付選択用の強力なカレンダーコントロールである Syncfusion の SfCalendar の実装方法を説明します。複数のビュー(月、年、10年、世紀)に対応し、包括的なカスタマイズオプション、特別な日付、選択不可の日付、日付範囲の制限をサポートします。

このスキルを使用する場面

次のような場合に、このスキルを使用してください。

  • WinForms アプリケーションに日付選択用のカレンダーコントロールを追加する
  • 単一または複数の日付を選択できる日付ピッカーを実装する
  • 予定やイベントの日付選択機能を作成する
  • 日付範囲選択用のインターフェイスを作成する
  • 月、年、10年、世紀の各ビューでカレンダーを表示する
  • 最小値と最大値の日付範囲で日付選択を制限する
  • カスタムアイコンや説明で特別な日付を強調表示する
  • 選択不可の日付を使用して、特定の日付を選択できないようにする
  • テーマやセルのスタイル設定でカレンダーの外観をカスタマイズする
  • さまざまな文化や言語に対応するようカレンダーをローカライズする
  • 週末や祝日を強調表示する
  • 日付を視覚的に示すスケジュール用インターフェイスを作成する

コンポーネントの概要

コントロール: SfCalendar
名前空間: Syncfusion.WinForms.Input
必要なアセンブリ:

  • Syncfusion.Core.WinForms.dll
  • Syncfusion.SfInput.WinForms.dll
  • Syncfusion.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");
};

主なプロパティ

プロパティ型説明
SelectedDateDateTime?現在選択されている日付を取得または設定します
SelectedDatesObservableCollection<DateTime>複数選択用に、選択された日付のコレクションを取得または設定します
MinDateDateTime選択可能な最小の日付
MaxDateDateTime選択可能な最大の日付
AllowMultipleSelectionbool複数の日付選択を有効にします
ShowTodaybool今日ボタンを表示または非表示にします
ShowNonebool選択を解除するためのなしボタンを表示または非表示にします
BlackoutDatesObservableCollection<DateTime>選択対象から除外する日付のコレクション
SpecialDatesObservableCollection<SpecialDate>アイコンと説明を含む特別な日付のコレクション
CultureCultureInfoローカライズと書式設定に使用するカルチャ
FirstDayOfWeekDayOfWeek週の開始曜日(日曜日、月曜日など)
StyleSfCalendarStyle外観のビジュアルスタイル設定

よくあるユースケース

  1. 日付ピッカー:フォームや入力ダイアログでの日付の単一選択
  2. 予定スケジューラー:特別な日付を強調表示しながら予定の日付を選択
  3. 日付範囲セレクター:レポートや予約の開始日と終了日を選択
  4. 祝日カレンダー:カスタムアイコンで祝日や特別なイベントを表示
  5. 空き状況カレンダー:予約システムで、選択不可の日付を使って利用できない日を設定
  6. 複数日付セレクター:一括操作や繰り返しイベント用に複数の日付を選択
  7. ローカライズされたカレンダー:グローバルアプリケーション向けに、さまざまな言語や文化のカレンダーを表示

次のステップ

まず はじめに を参照して SfCalendar をインストール、設定し、その後、アプリケーションの要件に応じて上記のナビゲーションガイドから各機能を確認してください。

コメント