none
DataGridViewの表示コントロールについて RRS feed

  • 質問

  • ロッソと申します。

     

    DataGridViewに表示できるコントロールについて質問します。

    セルの表示をチェックボックスやコンボボックスなどに変更できるのはわかるのですが、ボタン付きのテキストボックスを表示することはできないでしょうか?

     

    [状況]

    グリッドにmdbテーブルをデータセットにして表示しているのですが、あるデータ(セル)にはリンクしているテーブルがあり、このセルをクリックすることで他のテーブルを表示したいと考えています。

    ですが、このセルはテキストとして入力もしたいので単純にボタンにすることができません。

    イメージとしてはPropertyGridに表示されるボタン付きのテキストの用になればと考えています。

     

     どなた様か、ご指導いただければと思います。

    宜しくお願いいたします。

     

     

    2007年5月10日 1:35

すべての返信

  • DataGridView では、Cell や Column を拡張することができます。

    従って、ボタン付きのテキストボックスコントロールを自作し、そのコントロール用のセルを自作すれば実現できるかと思います。

    以下のリンクに詳しい説明があるので参考にしてみてください。

     

    http://msdn2.microsoft.com/ja-jp/library/7tas5c80(VS.80).aspx

    2007年5月10日 2:12
  • R・田中一郎 様 返答ありがとうございます。

     

    リンクページを見ましたが・・・ 私はVB2005を始めて数ヶ月の初心者のため、これを理解し、作成するには時間がかかりそうです。

    でも、ボタン付きのテキストボックスコントロールを作成できる事が解っただけでも、ありがたいです!

    R・田中一郎 様 まことにありがとうございます。
    2007年5月10日 4:01
  • DataGridViewには非バインド列としてボタンを配置することができます。
    テキストのセルの隣に非バインド列のボタンを配置してはどうでしょうか?

     

    2007年5月10日 14:36
  •  えムナウ様 返答ありがとうございます。

     

    私も同じ事を考え、データの隣の列をボタンにしてみましたが、全てのデータにリンクがあるわけではないので、一列全てがボタンになっているのもおかしな物かと考えました。

     

    実は・・・ 今更でスイマセンが状況を説明します。

     表示するデータは1件のため、データを縦並びで表示したいと考えました。(1列目[フィールド名]、2列目[データ])カード型とでもいうんでしょうか!?

    そのため基本はテキストボックスなのですが、行によってリンクがあったり、コンボボックスを使用したりします。

     

    で、3列目を一列ボタン表示にしたのですが、コンボボックスの隣にボタンがあるのもどうかと・・・

    技術が未熟なため解りませんが、必要な行のみボタンを表示することができるのでしょうか?

     

    ちなみに起動時に、必要な行をコンボボックス表示にするまではできたのですが・・・ 値の入れ方が解りません(ToT) これまた壁です・・・

    こちらも、解る方がいましたらご指導ください。

     

     

     

    2007年5月11日 8:01
  • これって DataGridView を使わなくてはいけない場面なのでしょうか?

    純粋に TableLayoutPanel コンテナに配置する方が自然に思えます。

     

    2007年5月11日 9:53
  • 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に入っているデータとか・・・

    2007年5月12日 23:11