DOBON.NET DOBON.NETプログラミング掲示板過去ログ

リストボックスの列幅

環境/言語:[VB2008]
分類:[.NET]

よろしくお願いします。
 下記はVBAの記述です。
  with userform1.Listbox1
.columncount=3
.columnwidths="55;140;100"
end with

VBの場合
  with form1.Listbox1 
.columnwidths="55;140;100"
end with
とするとエラーがでます。
 上記のVBA相当の事をしたいと思います。
 どのように記述すれば良いか教えて頂きたいと思います。
■No25131に返信(ayaさんの記事)

.NETでListBoxは複数列は出来ません(まーオーナードローでなら可能)
変わりに、ListViewコントロールを使ってください。
http://www.atmarkit.co.jp/fdotnet/dotnettips/258listviewadd/listviewadd.html
  • 題名: Re[1]: リストボックスの列幅
  • 著者: 魔界の仮面弁士
  • 日時: 2009/08/04 16:52:38
  • ID: 25133
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
■No25131に返信(ayaさんの記事)
>  上記のVBA相当の事をしたいと思います。

これは、Excel VBA の UserForm 向けコードでしょうか?

.NET の ListBox には、複数列表示の機能がありませんので、
ListBox の代わりに、ListView や DataGridView コントロールを
使ってみてください。これらは複数列表示にも対応しています。


なお、.NET の ListBox にも、複数列表示のためのプロパティとして
MultiColumn/ColumnWidth が用意されていますが、これはたとえば
10 個の項目を並べる際に、
  項目1  項目5  項目9
  項目2  項目6  項目10
  項目3  項目7
  項目4  項目8
の形式で並べていくためのものであり、ColumnWidths の代用にはなりません。

どうしても ListBox で無ければならないのであれば、
表示内容が複数列表記に見えるよう、DrawItem イベントを用いての
「オーナードロー」を行うという手もあります。手間はかかりますが。
■No25132に返信(やじゅさんの記事)
> ■No25131に返信(ayaさんの記事)
>
> .NETでListBoxは複数列は出来ません(まーオーナードローでなら可能)
> 変わりに、ListViewコントロールを使ってください。
> http://www.atmarkit.co.jp/fdotnet/dotnettips/258listviewadd/listviewadd.html
早速のご指導ありがとうございました。複数列ができなとは知りませんでした。
ご指示の通り、ListViewを検討してみます。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板