• ベストアンサー

ListViewで、非表示列って作れますか?

VB6.0です。 一覧にListViewを使用しているのですが、 非表示にしたい列があるのですが、出来ませんか? 列幅は可変としているので、列幅を0にしておく方法は使えません。 一覧には見せないけど、更新項目なので、 いちいちもう1度読み直すのは面倒なので、非表示で持っていたいのですが…。 何か方法ありますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.3

どんな感じで ListView にアイテムを追加してるのか分かりませんが、 見せたくない項目をキーにしてしまうとか? キーが重複しそうなら連番 でも仮につけとけば良いし。 With ListView1.ListItems.Add   .Key = strKey & Chr(0) & Cstr(lngItemCnt)   .Text = strText   .SubItems(1) = strSub1Text   .SubItems(2) = strSub2Text   .SubItems(3) = strSub3Text End With このようにして、 Private Sub ListView1_ItemClick(ByVal Item As MSComctlLib.ListItem)   MsgBox Left$(Item.Key, InStr(Item.Key, Chr(0)) - 1) End Sub こんな感じで非表示にしたい項目を拾うのは? > ただし、SORT機能をつけた場合、ずれますよね。 その通りですが、それが問題になりそうですか? 並びが気になるならソートしたときに非表示の ListView も同時に同項目で ソートすれば良いだけだし、そもそも配列も非表示の ListView は並び変え は必要ないと思いますよ。 表示されている ListView の ItemClick イベントなどで Key または Text は拾えるので、あとはそれを配列や 非表示 ListView から探すだけでは? 表示されていないものに並びは関係ないと思いますが、いかかでしょう? ただ、こっちの方法は効率悪いですね(´・ω・`)

wan-chan
質問者

お礼

ありがとうございます。 Keyに入れる方法でやってみます。 配列のことは、勝手にIndexで考えてました。 一意の値で探すのであれば、SORTされても問題ないですね。 非表示列にも表示している列と同じ列をすべて持たせるなら、 同項目でSORTできますね。 …私がバカでした。(--; 再度、ありがとうございました。

その他の回答 (4)

回答No.5

>試してみたのですが、 >サブアイテムがないリストの場合は無理ですか? サブアイテムの有無は関係なく使えます。

wan-chan
質問者

お礼

ありがとうございました。 出来ました!!

回答No.4

Key の代わりで、TagでOKです。ダブってもいいですし。 Private Sub Form_Load() Dim itmX As ListItem Set itmX = ListView1.ListItems.Add(, , "1番目") itmX.SubItems(1) = "First" itmX.Tag = "奇数" Set itmX = ListView1.ListItems.Add(, , "2番目") itmX.SubItems(1) = "Second" itmX.Tag = "偶数" Set itmX = ListView1.ListItems.Add(, , "3番目") itmX.SubItems(1) = "Third" itmX.Tag = "奇数" Set itmX = ListView1.ListItems.Add(, , "4番目") itmX.SubItems(1) = "Fouth" itmX.Tag = "偶数" End Sub Private Sub ListView1_Click() MsgBox ListView1.SelectedItem.Text & "は、" & _ ListView1.SelectedItem.Tag & "です。" End Sub

wan-chan
質問者

お礼

ありがとうございました。 試してみたのですが、 サブアイテムがないリストの場合は無理ですか?

  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.2

列幅 0 がベストだと思いますけど、存在すら見せたくないんですよね? 非表示の ListView をもう一つ用意しておくとか... 要素数が少ないなら配列などで内部的に保持しておくとか...

wan-chan
質問者

補足

ありがとうございます。 現在、配列で持っています。 ただし、SORT機能をつけた場合、ずれますよね。 (現在SORTはなしですが…) その辺がイヤなので、できれば、ListVIew持っていたかったのですが。 もう1つListViewで持っておくのも本体のListViewとSORTとずれますね…。 んー。Gridにすればよかったかも。。

回答No.1

Tagプロパティは使えませんか?

wan-chan
質問者

お礼

ありがとうございます。 Tagの使い方がいまひとつ理解できていません。 調べてみます。

関連するQ&A