DataGridViewでセルをマージするには?


なまぐり  2007-05-18 00:00:02  No: 136412

お世話になっております。

DataGridViewにてリストを作成し、以下のように表示させたいと
考えています。
また、このリストにはチェックボックス、コマンドボタンも搭載
する予定でいます。

名称Å    |名称B    |項目No    |チェック|ボタン
———————————————————————————
          |B1      |C1      |        |
          |          |———————————————
A1      |          |C2      |        |
          |—————————————————————
          |B2      |C1      |        |
———————————————————————————
          |B1      |C1      |        |
          |—————————————————————
A2      |B2      |C2      |        |
          |—————————————————————
          |B3      |C3      |        |
———————————————————————————

セルのマージはMSFlexGridでは可能だったのですが、DataGridView
の標準機能にはないということでした。
過去の記事を見る限りでは、「CellPaintingイベント」を用いて、
マージされているように見せることは可能のようですが、具体的に
どのようにプログラムを組んだらよいかわからず、途方にくれています。

http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200704/07040004.txt

逆に、上記の条件で他のコントロールを利用して動作させることは
可能なのでしょうか?
(以前はMSFlexGridにボタンとチェックボックスをBMPで貼り付け、
見せかけ押下で処理していました。)

ご教授よろしくお願いします。


魔界の仮面弁士  2007-05-18 00:39:06  No: 136413

> どのようにプログラムを組んだらよいかわからず、途方にくれています。
CellPainting イベント(または OnCellPainting メソッド)を利用する場合、
引数から e.Graphics を得て、これに対して「描画」する形になります。
そこで枠線を描画しなければ、マージされているように見えますし、
隣のセルまではみ出して描画すれば、セル間の中央揃えなどもできます。
(.NETのグラフィック描画機能に関する基礎知識が必要です)

検索してみると、このようなサンプルなどもありますね。
http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=474035&SiteID=7

> 他のコントロールを利用して動作させることは可能なのでしょうか?
いっそ、市販のコントロールを購入してしまうのも手かと。


魔界の仮面弁士  2007-05-18 01:06:48  No: 136414

マージの件とは関係ありませんが、以下、参考までに。

★DataGridView の基本的な使い方★
[10 行でズバリ !! 複合 Grid の作成 (VB)]
http://www.microsoft.com/japan/msdn/thisweek/300x10/Phase3/DataGridView/vb.aspx

★DataGridView のカスタマイズの例★
[DataGridView 列ヘッダー セルのドロップダウン フィルタ一覧を作成する]
http://www.microsoft.com/japan/msdn/net/winforms/dtgrdvwaf.aspx

[Windows フォーム DataGridView コントロールのカスタマイズ]
http://msdn2.microsoft.com/ja-jp/library/ms171618(VS.80).aspx

[DataGridView へ折りたたみ可能なツリーを実装](英文)
http://blogs.msdn.com/markrideout/archive/2006/01/08/510700.aspx

★DataGridView FAQ★
[DataGridView Control] (Wordファイル:英文)
http://web.archive.org/web/20060503024408/http://www.windowsforms.net/Samples/Go+To+Market/DataGridView/DataGridView+FAQ.doc


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






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