DOBON.NET DOBON.NETプログラミング掲示板過去ログ

サブフォームについて

環境/言語:[XP Pro C#]
分類:[.NET]

はじめて書き込みさせていただきます。

C#.netのWindowsフォーム内にSQLサーバから抽出したDatasetを下記のように表示したいと考えています。

----------------------
保管No 保管年月日
----------------------
保管場所 仕入先 納入先
----------------------

抽出結果のため上記を複数回表示し、さらにスクロールも必要です。
Accessで例えるとサブフォームのなかに帳票フォームを表示させている状態です。

WebフォームではRepeaterコントロールを使用すれば実現できそうなのですが、
Windowsフォームではどのようにすれば良いのでしょうか?


皆様のお知恵を拝借できれば幸いです。
よろしくお願いいたします。
  • 題名: Re[1]: サブフォームについて
  • 著者: ピラルク
  • 日時: 2004/02/21 22:22:42
  • ID: 2624
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
こんばんは、梅太郎さん。ピラルクです。

つまりWindowsフォームにて、1行で複数行表示できるグリッドを
表示したいということでしょうか?

考えられる方法としておおまかには、
A.DataGridでなんとか頑張る
B.MyGridを作り上げる
C.サードパーティ製品を探す
D.ブラウザを貼り付けて実現する
E.AccessのOLEで実現する

DとEは「Windowsフォームで」という前提条件に違反している
ような気もするので、(できるかどうかは別として)とりあえず
除外とします。
Cは、要件を満たすものが見つかればそれで解決かもしれません。
で、A,Bについてですが、まず編集はするのか?というのが大き
なポイントになります。またどれぐらいの行数になるかも実装
上考慮すべきところです。あとFormのリサイズにどう対応する
のかとか、細かいところではキーオペレーションは何をサポート
しなければならないのかとか。
編集なしならAは有望です。DataGridは1つのセルをPaintで
自由に描画できますから。編集ありでも、編集コントールを
Panelベースの特注を用意してあげれば不可能ではないかも
しれません。しかし、ここへリサイズがからむと破綻が近い
気がします。もしそれらを全てクリアできたならその時は、
Framework1.3には移れないリスクが大きくなっていると思い
ます。
Bは、1行分に相当するユーザーコントールなどを作成し、それ
をPanel上に行数分追加する手法と、表示行分並べてスクロー
ルバーも自分で添えて先頭行からデータを書き換えていく2種
類の方法があります。スクロールの面倒を見なくていいので、
当然前者が楽なのですが、行数3桁になるなら多分避けた方が
良いでしょう。Bは編集可否はあまり問題ではないですが、リ
サイズは避けたい雰囲気です。

ということでアバウトなことばかりですが、何かの参考になれば。

# DataGridってなんか思い込みの強いグリッドで、
# あんまり融通利かないんですよね。
# 真のフレキシブルグリッドは何処に!?

DOBON.NET | プログラミング道 | プログラミング掲示板