[C#][Windows Formsアプリ][MonthCalendar] 週番号をオンにして把握しやすくする

スポンサーリンク

はじめに

本記事では、Windows Forms の MonthCalendar週番号(Week Numbers)を表示するための ShowWeekNumbers プロパティの使い方を最短で解説します。ガントチャートの基準合わせやスプリント計画など、「第何週か」を一目で把握したい場面で威力を発揮します。

説明

ShowWeekNumberstrue にすると、カレンダー左側の余白に週番号が表示されます。
週の開始曜日は FirstDayOfWeek で指定できます(例:ISO 風に月曜はじまり)。
なお、週番号の算出ルールは OS・ロケールに依存します。アプリ側で厳密な ISO-8601 を強制する設定は用意されていないため、「表示の補助」として活用するのがおすすめです。

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

最小構成で「週番号 ON」「月曜はじまり」にするだけのフォームです。

 
using System;
using System.Windows.Forms;

class MainForm : Form
{
    public MainForm()
    {
        Text = "MonthCalendar - ShowWeekNumbers";
        var cal = new MonthCalendar
        {
            Dock = DockStyle.Fill,
            ShowWeekNumbers = true,  // 週番号を表示
            FirstDayOfWeek  = Day.Monday // 月曜はじまり(任意)
        };
        Controls.Add(cal);
    }

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

つまづきポイント

1) 週番号が思ったルールと違う
週番号の決まり方は環境(OS/ロケール)に影響されます。要件が厳密な場合は、別途ラベル等で独自計算した週番号を表示するアプローチを検討してください。

2) 週の開始曜日だけ変えたい
FirstDayOfWeek を設定すれば表示の並びは変えられます(Day.Monday など)。

3) 既存フォームに後付けしたい
既存の MonthCalendar インスタンスに対して ShowWeekNumbers = true; を一行追加するだけでOKです。

まとめ

ShowWeekNumberstrue にするだけで、スケジュールの「第何週」を直感的に把握できます。開始曜日の調整は FirstDayOfWeek、厳密な週番号規則が必要な場合は独自描画やラベル併用で補完しましょう。最小の変更で見通しが大幅に向上します。

 

Please follow and like us:

コメント

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