SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

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

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

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

  • X ポスト
  • このエントリーをはてなブックマークに追加

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]);
    }
}

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

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

次のページ
JPAddress for .NET

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
顧客と開発者の生産性を格段に向上させる、業務システムの画面UI連載記事一覧

もっと読む

この記事の著者

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

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

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/9994 2017/03/27 11:20

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング