GUIのデザイン
フォームのデザインは、図のようにデータ入力画面以外は標準コントロールを使用します。肝心の入力部分は、GcMultiRowコンポーネントを使用しています。このコンポーネントのデザイン方法については、次の項目で紹介します。
MultiRowコンポーネントについて
MultiRow for Windows Formsは、Excelシートのようなセルが行/列で構成されるグリッド系コントロールとは異なり、1レコード複数行表示や段組み型の入力インターフェースを作成できる、ユニークなグリッドコントロールです。
Visual Studioで、Windowsフォームにツールボックスからコントロールを貼り付けるのとまったく同じ感覚で、表のヘッダセルや繰り返し表示部分のセルを配置できます。また、グリッドにはボタンやコンボボックス、日付ピッカーなど、入力を支援する便利なセルも配置できるので、アプリケーションの操作性がぐっと向上します。
グリッドの作成は、Visual Studioのフォームデザイナと連動した専用のグリッドデザイナを使用して行います。イメージ的には、Microsoft Accessのレポート作成画面のような感じですが、よりデザインしやすい設計になっています。このデザイナには、GcMultiRowコンポーネント専用のコントロールを配置したツールボックスが表示され、ドラッグ&ドロップするだけで簡単にレイアウトできます。
各コントロールは、それぞれ設定されているプロパティを操作することで、動作や形状を変化させることができます。
デザイナは「設計時」画面でデザインし、その結果を「実行時」画面で確認できます。この画面では、実際にデータを入力して仕上がりを確認できます。
また、「印刷プレビュー」画面では、実際に印刷される状態を確認することもできます。
テンプレートとデータソース
GcMultiRowコンポーネントには、テンプレートと呼ばれるグリッドコントロールの雛形が用意されています。また、グリッドコントロールには、データベースのデータをデータソースとして連結させることができます。そのため、データソースがあれば、新規にグリッドをデザインする際、実行時に割り当てられたテンプレートとデータソースを基に表画面を作成できます。データソースが連結されていないときは、グリッドコントロールの行数が使用されるので、自分でテンプレートを作成します。
テンプレートには、グリッドコントロールの基となるヘッダー、フッターおよびセルを自由に配置できます。行に配置されたセルは、グリッドの設定に合わせて繰り返し表示されます。
テンプレート上のすべての要素はインデックスを持ち、実行時の操作に利用できます。各セルへの参照には、セルの行列番号をインデックス番号として使用します。セルに入力された値を取得したい場合は、このインデックス番号を使用します。
グリッドの構成
GcMultiRowコンポーネントは、大きく分けると2つのセクションに分かれます。
1つは、「columnHeaderSection」で、グリッドのヘッダー部分にあたります。このセクションは繰り返し表示されません。ヘッダー表示に使用されるため、データ入力用コントロールを配置しても入力機能は使えません。あくまでも表示のみのエリアだと思ってください。
もう1つは、「row」と呼ばれるセクションで、ここにセルなどの入力コントロールを配置します。このセクションは、1セット作成すると自動的に繰り返し表示されるようになります。
これら2つのエリアは、ドラッグして自由にサイズを変えることができます。
使用できるセルのタイプ
rowには、いろいろなタイプのセルを組み込んで使うことができます。
- 基本セル(Cell)
- ヘッダー型セル(HeaderCell)
- 列ヘッダー型セル(ColumnHeaderCell)
- 行ヘッダー型セル(RowHeaderCell)
- 文字列型セル(TextBoxCell)
- ボタン型セル(ButtonCell)
- チェックボックス型セル(CheckBoxCell)
- コンボボックス型セル(ComboBoxCell)
- マスク型セル(MaskedTextBoxCell)
- 日付型セル(DateTimePickerCell)
- 数値型セル(NumericUpDownCell)
- ラベル型セル(LabelCell)
- リンクラベル型セル(LinkLabelCell)
- イメージ型セル(ImageCell)
- プログレスバー型セル(ProgressBarCell)
- リッチテキスト型セル(RichTextBoxCell)
- ラジオグループ型セル(RadioGroupCell)
- ユーザー定義セル