リストビューカラム(列見出し)設定

解決


VBON  2006-10-27 01:24:15  No: 133872

動作環境:WindowsXP
開発環境:Visual Basic6.0

ヘルプや下記のHPを参考にしたのですが
リストビューのカラムが表示されません。

別の方法では上手くいきましたがカラムの位置が真ん中に置けない為
他の方法を探しています。

何か思い違いをしているかもと思いましたので書き込みました。
よろしくお願い致します。

MSDNライブラリの参考箇所
ColumnHeaders コレクションのAdd メソッドの構文

下記のHPを参考にしました。
http://www.philly.ne.jp/~hanya/vb/listview.htm

<現在のプログラム>
Private Sub Form_Load()

  'リストビューのカラムの設定
  Call Make_ListView

End Sub

Private Sub Make_ListView()
  Call ListView1.ColumnHeaders.Add(, , "番号",1200)
  Call ListView1.ColumnHeaders.Add(, , "商品名",2000,lvwColumnCenter)
  Call ListView1.ColumnHeaders.Add(, , "単位",1200,lvwColumnCenter)

End Sub


VB梅  2006-10-27 19:33:01  No: 133873

こんにちは
放置されていたので回答します
参考にしたHPをよく読んでくださいね
「あ。ちなみにさっき書いた『View』を『lvsReport : 3』にしてるからね。」
と書いてありますから。

ListView1.View = lvsReport
が必要ですね


VBON  2006-10-27 22:44:23  No: 133874

VB梅さんありがとうございます。
調べてるのですが分かりません

>「あ。ちなみにさっき書いた『View』を『lvsReport : 3』
ここに対応する箇所を見たのですが

プロパティListView1プロパティ
View の選択肢には下記しかありませんでした。
(0-lvwIconになっていたのを3-lvwReortにしました)
0-lvwIcon
1-lvwSmallIcon
2-lvwList
3-lvwReport

プログラムもこのように直したのですが上手くいきません
よろしくお願い致します。

Private Sub Make_ListView()

  ListView1.View = lvsReport

  'リストビューのカラムの設定
  Call ListView1.ColumnHeaders.Add(, , "番号", 1200)
  Call ListView1.ColumnHeaders.Add(, , "商品名", 2000, lvwColumnCenter)
  Call ListView1.ColumnHeaders.Add(, , "単位", 1200, lvwColumnCenter)

End Sub


特攻隊長まるるう  2006-10-28 05:15:55  No: 133875

こっちの環境では正常に実行できたよ。
>別の方法では上手くいきましたがカラムの位置が真ん中に置けない為
>他の方法を探しています。
その方法についてもなんか気になるので解説しておいて欲しいデス。
そっちの設定が残ってて悪さしてるとか?
…何かのオブジェクトの名前がかぶってるのかなぁ。。。

・新規プロジェクトを作成して、
・リストビュー(ListView1)とボタン(Command1)だけを配置して、
・デフォルトの設定のまま、プロパティは一切変更せず、
・下記コードを実行した結果は?
(ボタンは押してね)
[VB6.0]
Option Explicit

Private Sub Command1_Click()
  'リストビューのカラムの設定
  Call Make_ListView
End Sub

Private Sub Make_ListView()
    With Me.ListView1
        .View = lvwReport
        Call .ColumnHeaders.Add(, , "番号", 1200)
        Call .ColumnHeaders.Add(, , "商品名", 2000, lvwColumnCenter)
        Call .ColumnHeaders.Add(, , "単位", 1200, lvwColumnCenter)
    End With
End Sub


もげ  2006-10-28 05:54:55  No: 133876

>  ListView1.View = lvsReport

スペルミス?  sじゃなくてwですが、
件のページの作者殿、VB梅殿もですが...(^^;。 

特攻隊長殿が正解です。

宣言しないで使用している変数をチェックしてくれますので、
今回のような件のミス防止対策には、
Option Explicit  を先頭につけることをお薦めいたします。

Option Explicit
Private Sub Form_Load()

  'リストビューのカラムの設定
  Call Make_ListView

End Sub

Private Sub Make_ListView()
    With Me.ListView1
        .ColumnHeaders.Add , , "番号", 1200
        .ColumnHeaders.Add , , "商品名", 2000, lvwColumnCenter
        .ColumnHeaders.Add , , "単位", 1200, lvwColumnCenter
        .View = lvwReport
    End With
End Sub


VBON  2006-10-30 19:03:45  No: 133877

特攻隊長まるるうさん, もげさん
ありがとうございます。

新規作成して動かしましたら正常に動きました。
ちょっと不思議です。

>別の方法では上手くいきましたが
下記のプログラムです。
(私では上手く理解できなかったので、コピペーでした)

Private Sub Make_ListView()
 
  'リストビューのカラムの設定
   Dim colX As ColumnHeader
    
   ListView1.View = lvwReport
   Set colX = ListView1.ColumnHeaders.Add()
   colX.Text = "番号"
   colX.Width = ListView1.Width / 15
   Set colX = ListView1.ColumnHeaders.Add()
   colX.Text = "商品名"
   colX.Width = ListView1.Width / 2
   Set colX = ListView1.ColumnHeaders.Add()
   colX.Text = "単位"
   colX.Width = ListView1.Width / 15
   Set colX = ListView1.ColumnHeaders.Add()
   colX.Text = "数量"
   colX.Width = ListView1.Width / 15
   Set colX = ListView1.ColumnHeaders.Add()
   colX.Text = "単価"
   colX.Width = ListView1.Width / 10
   Set colX = ListView1.ColumnHeaders.Add()
   colX.Text = "売上金額"
   colX.Width = ListView1.Width / 5
End Sub


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

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






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