SHOEISHA iD

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

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

ComponentZine(InputMan)

マス目状入力機能を持った.NET アプリケーションを作る

InputMan for Windows Forms 5.0Jのキャラクタボックスコントロール「CharMask」を使ったアプリケーションの作成

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

計算処理

 計算処理は簡単です。最初のCharMaskコントロール「GcCharMask1」から、その下の4つのCharMaskコントロールの値を差し引くだけです。

計算コード

 CharMaskコントロールのValueプロパティから値を取り出し、これを整数データに変換して差し引きます。Visual BasicはValueプロパティの値をそのまま計算に使用できますが、C#ではデータ型変換の処理が必要になります。

 差し引いた値は、最後のCharMaskコントロールのValueプロパティに、文字列に変換して設定します。このコードは、ボタンのClickイベントハンドラに作成します。

Visual Basic
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim ans As Long
    Dim data(4) As String

    data(0) = GcCharMask1.Value
    data(1) = GcCharMask2.Value
    data(2) = GcCharMask3.Value

    If GcCharMask4.Value <> "" Then
        data(3) = GcCharMask4.Value
    End If

    If GcCharMask5.Value <> "" Then
        data(4) = GcCharMask5.Value
    End If

    ans = data(0) - data(1) - data(2) - data(3) - data(4)

    GcCharMask6.Value = ans
End Sub
C#
private void button1_Click(object sender, EventArgs e)
{
    long ans;
    String[] data = new String[5];

    data[0] = gcCharMask1.Value;
    data[1] = gcCharMask2.Value;
    data[2] = gcCharMask3.Value;

    if(gcCharMask4.Value != "")
    {
        data[3] = gcCharMask4.Value;
    }

    if (gcCharMask5.Value != "")
    {
        data[4] = gcCharMask5.Value;
    }

    ans = long.Parse(data[0]) - 
          long.Parse(data[1]) - 
          long.Parse(data[2]) - 
          long.Parse(data[3]) - 
          long.Parse(data[4]);

    gcCharMask6.Value = Convert.ToString(ans);
}

 実際に簡単な数字を入れて計算結果を見てみます。

動作チェック
動作チェック

表示文字位置の修正

 プログラムの実行画面をよく見ると「課税対象額」の値がおかしく、左詰めで表示されています。これは、CharMaskコントロールがデフォルトで左詰め表示されるようになっているためです。課税大小額は8桁までマス目がありますが、8桁未満の桁数の数字を代入すると左詰めで表示されてしまいます。そのため、右のマス目が空欄になってしまうのです。

 そこで、最後のCharMaskコントロールの「InputDirection」プロパティを「RightToLeft」にして、右詰めで表示するようにします。

右詰めで表示されるようになる
右詰めで表示されるようになる

 好みによっては、CharMaskコントロールのBorderStyleプロパティを「FixedSingle」にし、SingleBorderColorプロパティで色を付け、LiteralBoxとInputBoxのForeColorも同じ色に合わせると、綺麗な入力インターフェースに仕上げることができます。

カラフルな入力画面にデザインできる
カラフルな入力画面にデザインできる

まとめ

 CharMaskコントロールは、郵便番号や電話番号などの定型書式を入力するのに使用できるだけでなく、今回のように経理などの計算用入力インターフェースにも使える便利なコントロールです。

 マス目の形状も、枠線の設定やPadding、Marginプロパティによっていろいろなデザインが作れますので、フォームのデザインに苦労していたら、このコントロールを試してみてはいかがでしょうか。

製品情報

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

  • このエントリーをはてなブックマークに追加
ComponentZine(InputMan)連載記事一覧

もっと読む

この記事の著者

瀬戸 遥(セト ハルカ)

8ビットコンピュータの時代からBASICを使い、C言語を独習で学びWindows 3.1のフリーソフトを作成、NiftyServeのフォーラムなどで配布。Excel VBAとVisual Basic関連の解説書を中心に現在まで40冊以上の書籍を出版。近著に、「ExcelユーザーのためのAccess再...

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

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

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/3771 2009/04/03 12:09

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング