SHOEISHA iD

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

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

ComponentZine(MultiRow)

高性能な伝票入力フォームを持った.NETアプリケーションを作る

MultiRow for Windows Forms 5.0Jで伝票明細のようなグリッドを作る

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

GUIのデザイン

 フォームのデザインは、図のようにデータ入力画面以外は標準コントロールを使用します。肝心の入力部分は、GcMultiRowコンポーネントを使用しています。このコンポーネントのデザイン方法については、次の項目で紹介します。

GUI画面
GUI画面

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)
  • ユーザー定義セル

次のページ
GcMultiRowコンポーネントのデザイン

修正履歴

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

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

もっと読む

この記事の著者

瀬戸 遥(セト ハルカ)

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

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

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

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/4411 2009/10/16 11:47

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング