DataGridViewのセルにラジオボタンを設置するには?


Morning Blue  2009-07-22 00:35:19  No: 142242

VB2008で、以下のようなことをやりたいと思っています。
例として、
  ラジオボタン
  商品名の列
  商品の説明文の列
  のリストを表示し、ラジオボタンで1行だけ選択することができる。
  リストの行数が多い場合は、決められた範囲内でスクロールする。

ここで、DataGridViewを使用すれば、リストの一覧表示と行方向スクロールが簡単にできると思ったのですが、
DataGridViewのセルタイプにはチェックボックスはあるけれどラジオボタンがないことに気付きました。
ラジオボタンを設置する方法って、あるのでしょうか?
皆様のお知恵を拝借したく、よろしくお願い申し上げます。

なお、DataGridViewを使用せずとも、このような一覧を表のような形式で表示する方法が他にあるのであれば、
何もDataGridViewを使用した方法にはこだわりませんので、アドバイスをお願い致します。


オショウ  2009-07-22 06:47:54  No: 142243

その手の表を作ったことありますが・・・

ラジオボタンにしたい理由は?
チェックボックスで十分こと足りますが・・・

以上。


Morning Blue  2009-07-22 08:28:45  No: 142244

和尚様、ありがとうございます。
ラジオボタンにする理由は、ユーザインタフェースとして、
・ラジオボタン…すべての行のうち、一つだけを選択する
・チェックボックス…その行を選択するかどうか
ことが、ユーザにとって一目で理解できるからです。つまり、チェックボックスを使用した場合、
複数行を選択できてしまうように誤解されるのを防ぎたいのです。
元々はWebで同じことをやっていたので(言語は違いますが)、Windowsアプリでも同様のことをやりたいと思っています。
動的なHTMLでこのようなことをやるのは非常に簡単なのですが、Windowsアプリでは難しそうですね。


魔界の仮面弁士  2009-07-22 18:27:24  No: 142245

単一行を選ばせるなら、FullRowSelect にするだけでも良いような気もしますが、
多分、今回はそれでは駄目なのでしょうね。

> 和尚様、ありがとうございます。
名前は正確に。

> 複数行を選択できてしまうように誤解されるのを防ぎたいのです。
まず、CheckBox タイプを用いて、単一選択となるような制御を組み込むことは出来ますか?
それが可能であるならば、あとは単に見た目を変更するだけですから、
CellPainting イベントで、ラジオボタンを描画してやれば解決するかと思います。
(描画は、VisualStyleElement クラス または RadioButtonRenderer クラスで)


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

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






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