質問者
DataGridViewの表示コントロールについて

質問
-
ロッソと申します。
DataGridViewに表示できるコントロールについて質問します。
セルの表示をチェックボックスやコンボボックスなどに変更できるのはわかるのですが、ボタン付きのテキストボックスを表示することはできないでしょうか?
[状況]
グリッドにmdbテーブルをデータセットにして表示しているのですが、あるデータ(セル)にはリンクしているテーブルがあり、このセルをクリックすることで他のテーブルを表示したいと考えています。
ですが、このセルはテキストとして入力もしたいので単純にボタンにすることができません。
イメージとしてはPropertyGridに表示されるボタン付きのテキストの用になればと考えています。
どなた様か、ご指導いただければと思います。
宜しくお願いいたします。
すべての返信
-
DataGridView では、Cell や Column を拡張することができます。
従って、ボタン付きのテキストボックスコントロールを自作し、そのコントロール用のセルを自作すれば実現できるかと思います。
以下のリンクに詳しい説明があるので参考にしてみてください。
http://msdn2.microsoft.com/ja-jp/library/7tas5c80(VS.80).aspx
-
えムナウ様 返答ありがとうございます。
私も同じ事を考え、データの隣の列をボタンにしてみましたが、全てのデータにリンクがあるわけではないので、一列全てがボタンになっているのもおかしな物かと考えました。
実は・・・ 今更でスイマセンが状況を説明します。
表示するデータは1件のため、データを縦並びで表示したいと考えました。(1列目[フィールド名]、2列目[データ])カード型とでもいうんでしょうか!?
そのため基本はテキストボックスなのですが、行によってリンクがあったり、コンボボックスを使用したりします。
で、3列目を一列ボタン表示にしたのですが、コンボボックスの隣にボタンがあるのもどうかと・・・
技術が未熟なため解りませんが、必要な行のみボタンを表示することができるのでしょうか?
ちなみに起動時に、必要な行をコンボボックス表示にするまではできたのですが・・・ 値の入れ方が解りません(ToT) これまた壁です・・・
こちらも、解る方がいましたらご指導ください。
-
PropertyGrid コントロールを使ったらどうでしょうか?
(初心者じゃText+ボタンのプロパティ作るの大変かな)
用途としてはちょうどいい感じだとは思いますが・・・
http://www.microsoft.com/japan/msdn/net/general/usingpropgrid.aspx
http://blogs.wankuma.com/naoko/archive/2007/03/20/67738.aspx
>必要な行のみボタンを表示することができるのでしょうか?
ボタンを大きくすると邪魔ですが小さくすると(正方形な感じ)そんなに邪魔じゃないですよ。
DataGridViewCell.Style プロパティで無効っぽく見せることや
イベントが発生しても無反応にすることで無効にすることはできても、
非表示にはできません。
>必要な行をコンボボックス表示にするまではできたのですが・・・ 値の入れ方が解りません
どこからどういう値を入れたいのかわからないので、
なんともお返事しづらいのですがリンクをつけておきます。
http://www.microsoft.com/japan/msdn/net/winforms/DtGrdVwAF.aspx
値の入れ方の詳細がわからないとレスが付かないと思います。
例えば直接、1は男、2は女と入れるとか、DBのテーブルからよんでDataSetに入っているデータとか・・・