Shoeisha Technology Media

CodeZine(コードジン)

記事種別から探す

元号変更にも対応! 日本仕様に強いシステム開発のためのコンポーネント

顧客と開発者の生産性を格段に向上させる、業務システムの画面UI 第6回

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2017/03/23 14:00

目次

CalendarGrid for Windows Forms

 CalendarGridはグリッド上に日付を表示する機能を備えたコンポーネントです。

 そのコンポーネント名から、カレンダー機能が欲しい場合に利用するコンポーネントと思われがちですが、柔軟なグリッド編集機能はMultiRowのような複雑な表示が可能です。もちろん、カレンダーとしても利用できます。

六曜、和風月名などの日本独自の表現に対応

六曜の表示

 六曜の表示は、CalendarGridのデザイナーからDataFormatの項目を{Rokuyou}にすることで表示できます。CalendarGridのデフォルトテンプレートにも六曜表示のセルがありますので、そちらを利用しても構いません。

六曜の表示
六曜の表示

和風月名の表示

 和風月名の表示方法はCalendarGridの公式ドキュメントに記載してありますので、導入方法を簡単に解説します。詳しくは以下のURLを参考にしてください。

イベントの設定

 Form1のLoadイベントハンドラーを用意します。ここでは「Form1_Load」という名前にします。

Loadイベントハンドラーの設定
Loadイベントハンドラーの設定

 続いて画面に配置したGcCalendarGridコントロールのFirstDateInViewChangedイベントハンドラーを設定します。FirstDateInViewChangedはFirstDateInViewプロパティが変更された際に呼び出されるイベントハンドラーです。

コードの修正

 続いてForm1.csを以下のように修正します。これは上記URLに掲載されているコードです。

和風月名を表示する
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        int month = gcCalendarGrid1.FirstDateInView.Month - 1;
        UpdateJapaneseMonthName(month);
        gcCalendarGrid1.FirstDateInViewChanged += gcCalendarGrid1_FirstDateInViewChanged;
    }

    private void gcCalendarGrid1_FirstDateInViewChanged(object sender, EventArgs e)
    {
        var gcCalendarGrid = sender as GcCalendarGrid;

        int month = gcCalendarGrid.FirstDateInView.Month - 1;
        UpdateJapaneseMonthName(month);
    }

    private void UpdateJapaneseMonthName(int month)
    {
        var japaneseMonthNames = "睦月,如月,弥生,卯月,皐月,水無月,文月,葉月,長月,神無月,霜月,師走".Split(',');
        var japaneseMonthNamesReading = "むつき,きさらぎ,やよい,うづき,さつき,みなづき/みなつき,ふみづき/ふづき,はづき/はつき,ながつき/ながづき,かんなづき,しもつき,しわす".Split(',');

        CalendarTitleCaption titleCaption = gcCalendarGrid1.TitleHeader.Children["calendarTitleCaption1"] as CalendarTitleCaption;
        titleCaption.Text = string.Format("{0} ({1})", japaneseMonthNames[month], japaneseMonthNamesReading[month]);
    }
}

 プログラムを実行すると下画像のように月の項目が弥生などの和風月名に変更されます。

和風月名が表示された
和風月名が表示された

  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • 西村 誠(ニシムラ マコト)

     Microsoft MVP Windows Platform Development。  Flash、PHPの開発経験もあり国産ECサイト構築フレームワーク「EC-CUBE」の公式エバンジェリストでもある。  ブログ:眠るシーラカンスと水底のプログラマー  著書:基礎から学ぶ Windows...

バックナンバー

連載:顧客と開発者の生産性を格段に向上させる、業務システムの画面UI
All contents copyright © 2005-2017 Shoeisha Co., Ltd. All rights reserved. ver.1.5