- - PR -
ListView内のチェックボックスを表示/非表示にするには(CheckBoxesプロパティ)
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2007-05-02 21:22
Visual Studio 2005 Team Edition
C# Windowsアプリケーション ListViewに表示するチェックボックスについて質問させてください。 現在、ListViewのCheckBoxesプロパティをtrueにしてListViewの各項目にチェックボックスを表示させています。 ID 名前 権限 --------------------------------- □001 田中 0 □002 鈴木 1 □003 佐藤 0 上記のような状態で権限が1のユーザ列のチェックボックスのみ表示させ それ以外のユーザ列のチェックボックスは非表示する実装を考えているのですが ID 名前 権限 --------------------------------- 001 田中 0 □002 鈴木 1 003 佐藤 0 CheckBoxesプロパティでは、全ての項目を表示/非表示するかどうかしか設定できず また、ListViewにデータを追加する際に利用しているListViewItemクラスにも チェックボックスの表示に関する操作を行なえるメンバが無く困っています。 このように特定行のチェックボックスを非表示にするには (もしくはチェックできないようにするには)どのようにすればよいのでしょうか? よろしくおねがいします。 |
|
投稿日時: 2007-05-02 22:55
標準ではできないので、SmallIconを利用して自力で切り替えるのとか。
|
|
投稿日時: 2007-05-03 09:13
DataGridView を使えば、標準機能で同じようなものは作れると思います。
もちろん見栄えも変わってしまいますが。 |
|
投稿日時: 2007-05-03 14:47
古くさい手法ですが、ListView の上に仮想 CheckBox を載せてしまうという方法もあります。
.NET で使う場合は、ユーザーコントロール化しないと不協和音が出ますけど。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 |
|
投稿日時: 2007-06-02 08:18
ListViewItem.StateImageIndex = 2
とすればチェックボックスは消えます。 ListViewItem.StateImageIndex = 0 でチェックされてないチェックボックス、 ListViewItem.StateImageIndex = 1 でチェックされたチェックボックスが表示されます。 [ メッセージ編集済み 編集者: れい 編集日時 2007-06-02 08:19 ] |
|
投稿日時: 2007-06-02 09:24
間違える人がいそうなので追記。 StateImageIndex=2 とするとチェックボックスは消えますが、 クリックするとまた表示されます。 たぶんお望みになってる動作にするには クリックできないようにする必要があると思いますが、 私はめんどくさくなってやめました。 ちなみに、「2」でなくても、 -1とか3とか14でもチェックボックス消えます。 -1のときだけ動作がちょっと違います。 どうして違うのか、どう違うのかはよくわかりません。 うまくCheckBoxの非表示ができたら教えてください。 |
1