[C#][Windows Formsアプリ][MonthCalendar] 前後月の日付の見え方を調整する

スポンサーリンク

はじめに

本記事では、Windows Forms の MonthCalendar における TrailingForeColor(前後月の日付文字色)の使い方を最短で解説します。月の端に表示される「先月・来月の日付」が本題の月と紛れないように、視認性を保ちながら控えめに見せるのがポイントです。

説明

MonthCalendar には 3 つの「文字色」系が存在します。

ForeColor:当月の各日付の文字色
TrailingForeColor:前後月に属する日付の文字色(薄くするなどの調整に使用)
TitleForeColor:タイトル帯(「<月 年>」「曜日見出し」)の文字色

ベストプラクティス:当月(ForeColor)は読みやすく、前後月(TrailingForeColor)はコントラストを下げて控えめに。これだけで「今月の範囲」が直感的に把握できます。

サンプルコード(極力短く)

当月=濃色、前後月=薄色にする最小サンプルです。必要なら色を差し替えてご利用ください。

 
using System;
using System.Drawing;
using System.Windows.Forms;

class MainForm : Form
{
    public MainForm()
    {
        Text = "MonthCalendar - TrailingForeColor";
        var cal = new MonthCalendar
        {
            Dock = DockStyle.Fill,
            ForeColor = Color.Black,            // 当月の日付
            TrailingForeColor = Color.DarkGray, // 前後月の日付(控えめに)
            TitleBackColor = SystemColors.ActiveCaption,
            TitleForeColor = SystemColors.ActiveCaptionText
        };
        Controls.Add(cal);
    }

    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.Run(new MainForm());
    }
}

つまづきポイント

1) 文字が薄すぎて読めない
薄めのグレーでも環境によっては視認性が落ちます。Color.GrayColor.DimGray など、段階的に濃くして調整しましょう。

2) 当月と前後月の差が小さい
ForeColorTrailingForeColor のコントラスト差を広げます。背景色(BackColor)も合わせて調整すると効果的です。

3) タイトルや曜日の色も変えたい
タイトル帯は TitleBackColor / TitleForeColor で別管理です。本文と混同しないようにしましょう。

まとめ

TrailingForeColor は「前後月の日付だけを控えめに」するための専用プロパティ。ForeColor とのコントラストを適切にとるだけで、今月の境界が一目瞭然になり、見やすいカレンダーを短いコードで実現できます。

Please follow and like us:

コメント

タイトルとURLをコピーしました