シンプルカレンダー
Windows 10 / Visual Stadio Community 2019 / .net 5.0
月曜始まり日曜終わりの月間カレンダー。週数は5週または6週となる。月初の余白は前月の月末日で、月末の余白は翌月の月初日で埋める。
月移動(矢印)ボタンのクリックにより、翌月または前月に移動する。
クリックした日付を選択日にする。上下左右の矢印キーにより選択日が移動する。選択日は日付を赤い枠線で囲む。
休日(日曜日と祝日)の文字色は赤、土曜日は青にする。当月の日付のフォントは大きくし、前月・翌月の日付のフォントは小さくする。
クラス一覧
CalendarFormクラス
カレンダーを表示するメインフォーム
月間カレンダーの作成/表示、、月の移動などのUIイベントの制御を行う。カレンダーは、一日の日付を表す DayItemクラスのオブジェクトをメインフォームに配置したものである。
フォームのデザインは、デザイナーを使わず、プログラムによりコントロールオブジェクトを作成し、空白のフォームの上に、貼り付けていくという方法をとる。
DayItemクラス
コントロールに日付を描画し、日付の属性(休日/平日、システム日付、選択中か否かなど)によって文字の色や背景色、枠線の色を変える。
Calendarクラス
カレンダー 1ヶ月分の日付情報を保持する。
日ごとの情報は CalendarDateクラスのインスタンスに保持される。これらのインスタンスはカレンダーに表示される日数だけ作成され、Calendarクラスのオブジェクトはこれらを所有する。
カレンダーを表示するフォームオブジェクトは、Calendarクラスのオブジェクトを一つだけ保持し、その日付情報を元にカレンダーを作成し表示する。
CalendarDateクラス
1日分の日付情報として、年、月、日、曜日、休日フラグなどを持つ。
DateUtilクラス
日付を扱う関数ライブラリ。日付の計算、日付の比較、月末日を求める、和暦変換などを行う関数を提供。
休日ファイル(holiday.json)
休日の表示のために参照する国民の祝日を登録したファイル。リソース(Resouces)フォルダに格納する。