計算処理
計算処理は簡単です。最初のCharMaskコントロール「GcCharMask1」から、その下の4つのCharMaskコントロールの値を差し引くだけです。
計算コード
CharMaskコントロールのValueプロパティから値を取り出し、これを整数データに変換して差し引きます。Visual BasicはValueプロパティの値をそのまま計算に使用できますが、C#ではデータ型変換の処理が必要になります。
差し引いた値は、最後のCharMaskコントロールのValueプロパティに、文字列に変換して設定します。このコードは、ボタンのClickイベントハンドラに作成します。
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
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プロパティによっていろいろなデザインが作れますので、フォームのデザインに苦労していたら、このコントロールを試してみてはいかがでしょうか。