作成したGcMultiRowコンポーネントのデザインをフォームに反映する
ここまで作成したら、GcMultiRowコンポーネントのデザインをフォームに反映させます。
フォームデザイナに切り替え、Visual Studioの[ビルド]-[リビルド]メニューを実行します。すると、ツールボックスに「xxxコンポーネント」というタブが作成され、「Template1」というコンポーネントが作成されます。これをフォームにドラッグ&ドロップします。
![「ビルド-リビルド」メニューを実行](http://cz-cdn.shoeisha.jp/static/images/article/4411/image18.gif)
![「xxxコンポーネント」タブが作成され「Template1」が作成される](http://cz-cdn.shoeisha.jp/static/images/article/4411/image19.gif)
次に、GcMultiRowコンポーネントの「Tenplate」プロパティに、この「Template1」を設定します。これで、GcMultiRowコンポーネントのデザインをフォームに反映できます。
![「Tenplate」プロパティに「Template1」を設定する](http://cz-cdn.shoeisha.jp/static/images/article/4411/image20.gif)
以降、デザイナでグリッドのデザインを変更した場合は、Visual Studioの[ビルド]-[リビルド]メニューを実行してください。この操作を行わないと、GcMultiRowコンポーネントのデザインをフォームに反映することができません。
セルのデータを取得する
セルに入力された値を取得するには、GcMultiRowクラスのGetValueメソッドを使用します。メソッドの引数は2つで、データを取り出したい位置のセルの行列番号を指定します。
GetValueメソッドの書式
Public Function GetValue(ByVal rowIndex As Integer, _ ByVal cellIndex As Integer _ ) As Object
public object GetValue(int rowIndex, int cellIndex);
引数 | 説明 |
---|---|
rowIndex | セルの行インデックス |
cellIndex | セルの列インデックス |
セルの行番号は最も上の行が「0」になり、列番号はセルを配置した順に自動的に割り振られます。セルの列インデックスを確認するには、デザイナで[テンプレート]-[セルの情報]-[インデックス]をオンにします。
![セルの行列番号](http://cz-cdn.shoeisha.jp/static/images/article/4411/image21.gif)
このプログラムでは、「合計金額」に入力された値を取り出し、購入金額の合計をMaskedTextBoxコントロールのDoubleClickイベントハンドラで合計するようにしました。このとき、GcMultiRowクラスのRowCountプロパティで、現在何行のデータが入力されているのかを把握し、その行数分の合計を出すようにしています。
Dim sum As Integer = 0 Private Sub MaskedTextBox2_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles MaskedTextBox2.DoubleClick Dim cnt As Integer = 0 Dim i As Integer cnt = Me.GcMultiRow1.RowCount For i = 0 To cnt - 1 sum += Convert.ToInt32(Me.GcMultiRow1.GetValue(i, 6)) Next Me.MaskedTextBox2.Text = Convert.ToString(sum) End Sub
int sum = 0; private void maskedTextBox2_DoubleClick(object sender, EventArgs e) { int cnt = 0; int i ; cnt = gcMultiRow1.RowCount; for (i = 0; i <= cnt - 1; i++ ) { sum += Convert.ToInt32(gcMultiRow1.GetValue(i, 6)); } maskedTextBox2.Text = Convert.ToString(sum); }
まとめ
このようにMultiRow for Windows Forms 5.0JのGcMultiRowコンポーネントは、単純な行列ではない複雑なレイアウトの表を、簡単に作成できるコンポーネントです。また、豊富なセル型がエンドユーザーの入力を助けてくれるので、ユーザビリティの向上につながります。アプリケーション操作の学習にかかる時間を短縮できるというメリットも生まれます。
今回は、簡単な売り上げデータ入力のアプリケーションを作りました。ページの関係で、MultiRow for Windows Forms 5.0Jのほんのわずかの機能しか紹介できませんでしたが、このアプリケーションを作るのにも大して時間はかからなかったので、グリッドの作り込みやDBデータの表示で苦労されている方々には、大きなメリットを生み出すコンポーネントだと思います。
次回は、もう少しこのアプリケーションの機能を拡張していきたいと思います。