ListViewでのリスト表示のプロパティの設定例を教えてください

このQ&Aのポイント
  • WinXP Pro VB6.0で開発を行っています。ドラッグ&ドロップにより、ListViewでファイルのパスをリスト表示するプログラムを作成しています。
  • ListViewを利用する理由は、パスの長さに合わせてスクロールバーを表示したいためです。
  • 現在、プロパティの設定が分からず、うまく表示できません。Viewを変更し、ヘッダ部分は不要で、パスのみを表示したいです。
回答を見る
  • ベストアンサー

ListViewでのリスト表示(初歩的な質問です)

WinXP Pro VB6.0で開発を行っています。 現在、ドラッグ&ドロップにより、ListViewでファイルのパスをリスト表示するプログラムを作成しています。 ListBoxではなくListViewを利用する理由は、パスの長さに合わせてスクロールバーを表示したいためです。 そこで、ドラッグ&ドロップイベントでファイルのパスを取得することは出来たのですが、単純なリスト表示ができません。 ListView1.ListItems.Add(, , tmpPath) でパスを追加しているのですが、プロパティの設定がよく分からずうまく表示できません。 Viewを2-lvwLstに変更し、何となく表示はしているのですが2列表示になり、縦のスクロールバーが表示されません。 なお、表示の際、ヘッダ部分は必要ありません。 また、パスのみの表示であるため、一項目の表示です。 プロパティの設定例を教えていただけませんか? 非常に初歩的な質問ですがよろしくお願いします。

  • srny
  • お礼率35% (25/71)

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

  • ベストアンサー
  • re13b
  • ベストアンサー率58% (18/31)
回答No.1

まずコントロールのプロパティページで、ViewをlvwReportにします。 それと"列見出しを非表示"にチェックを入れます。 コード中で列を1列分作成します。コントロールのプロパティページで、"列見出しの追加"でも良いです。 その列の幅をListViewのコントロール幅に適宜合わせます。 あとはマウス操作のイベントで、アイテム追加でパスを入れていきます。 ただしこの場合、列を1列のみで使用することになるので、リストの内容の配置が左寄せ固定になります。 もし配置等で自由度を求めるのであれば、列を2列にして1列目の幅を極小&空文字にして、2列目に 目的の文字を入れていけば良いかと・・・。試したわけではないですが。

srny
質問者

お礼

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

関連するQ&A

  • VSC# ListViewへのドラッグ&ドロップ

    エクスプローラにある複数のファイル同時にListViewにドラッグ&ドロップしてそのファイル名をListViewに追加したいのですが、どのようにすれば出来るのでしょうか? ※ファイル名の表示はすでに出来ています。複数追加のやり方を知りたいです。 教えてください、お願いします><

  • ListViewコントロールでサムネイル画像を一覧表示するには?

    VB初心者です。 .NET TIPSの中に「ListViewコントロールでサムネイル画像を一覧表示するには?」というものがありました 今回、それを利用してサムネイル一覧の表示をしようとして行き詰りました。 作りたいのは以下のものです ○決まったサイズの画像(bitmap)を表示し、その下にファイル名(フルパスでは無い)を表示し、更にその下に元の画像のサイズを表示するようなものを作成したいのですが、作成可能でしょうか? また、作成可能な場合、どういった方法で作成したら良いか教えて下さい。 行き詰ったのは、第一段階の、サムネイル画像のしたのファイル名の所です。 よく分からずに ListView1.Items.Add(bmpFiles(i), i)の所を Dim bmpFileName As String = _ Path.GetFileNameWithoutExtension(bmpFiles(i)) ListView1.Items.Add(bmpFileName) bmpFileName(ファイル名のみ)に変更したら、ファイル名は表示されるのですが、画像が表示されませんでした。 次に両方書いたのですが画像の下にフルパスその横にファイル名が表示されます。 Dim bmpFileName As String = _ Path.GetFileNameWithoutExtension(bmpFiles(i)) ListView1.Items.Add(bmpFiles(i), i) ListView1.Items.Add(bmpFileName) 色々調べてみたのですが、思ったような記述が無かったのでここで質問させて頂きました。 拙い質問なので分かり難いかと思いますがアドバイスをよろしくお願いいたします。

  • Android ListViewで横一列で水平スクロールするリストの作

    Android ListViewで横一列で水平スクロールするリストの作り方。 マッピング用のlist.xmlにImageViewやTextViewを配置。 list.xmlのImageViewやTextViewへAdapterをセットしています。 生成されたListViewは通常このように表示される。 □ ▲ □ || □ ▼ しかし、今回解決したい問題は生成されたListViewの表示を以下にしたいのです。 □□□□ <======> 当方はListViewで横一列で水平スクロールするリストは無理なのか、可能なのかも分かっておりませんので、 「ListViewで横一列で水平スクロールするリストは無理だよ!」や 「ListViewで横一列で水平スクロールするリストはこう作ればいいよ」など、、 どんな情報でも構いませんので、どなたか、分かる方がいらっしゃいましたらご教授いただけませんでしょうか? 宜しくお願いいたします。

  • ListViewで、PageDownキーイベントを発生させるには?

    VB6で開発しています。 ラベルとListViewのみのフォーム上で、 PageUpやPageDownキー押下で、イベントを発生させたいのですが、 PageDownを押下すると、ListView内のリストのカーソルが下に移動してしまい、 (フォーカスが当たるコントロールがListViewしかないためと思われますが) イベントが発生せずに困っています。 自分で実現しようとしてできなかった方法を紹介します ・リストビューにフォーカスが当たらないようにする。   Enabled = Falseだとスクロールバーが使えないので困る。    ・ListViewはEnabled=Falseにし、スクロールバーコントロールを使って、スクロールさせる。   スクロールさせる方法が見つかりませんでした。 何か、よいアイデアや方法があれば、ご教授宜しくお願いしますm(_ _)m

  • ユーザーフォーム スクロールバー 非表示にしたい

    ListBoxの文字は4バイトですくないのに 横のスクロールバーが表示されてしまうので、非表示にしたいのですが プロパティを見てもスクロールバープロパティが見当たりません。 文字が少なくて、 すべて表示できる以上に幅をとってるのにスクロールバーが表示されてしまうのですが 非表示にする方法があれば教えてください。

  • VB6.0初心者です。基本的なことですいません

    VB6.0初心者です。基本的なことですいません ListViewコントロールでListItemの追加がよくわかりません。  (1)Listview1.ListItems.Add.Text = objDrive.DriveLetter Listview1.ListItems.Add.SubItems(1) = objDrive.VolumeName と記述すると、1段ずれて表示されてしまいます。  (2)With Listview1.ListItems.Add()   .Text=objDrive.Driveletter  .SubItems(1)=objDrive.VolumeName   End With 又は、  (3)Dim lstItem as ListItem Set lstItem = ListView1.ListItems.Add() lstItem.text=objDrive.DriveLetter lstItem.SubItems(1)=objDrive.VolumeName の記述でうまくいくのですが、 なぜ、(1)だと1段ずれるのか、この理由がわかりません。よろしくお願いします。

  • C#:ListViewでのスクロールイベントの取得について

    .Net2003 C# にてアプリを作成しています。 .Netを始めて初心者です。(プログラミング経験も浅いです) ListView1とListView2を作成して、 ListView2がスクロールしたら、ListView1も同じくスクロールさせる と言ったListViewのスクロールの同期化処理を行いたいのですが、 ソースコードが思いつきません。 ListViewのイベント、プロパティにはスクロール情報を取得するモノが みつかりませんでした。 現在は下記サイトを参考にさせて頂き、スクロールイベントの発生をキャッチする所までは なんとかたどり着いたのですが、ここからどうやって ListView1にスクロール同期化をさせるコードを書いていいのかが 思いつきません。 何か参考になるHPや、コードがありましたら教えてください。 http://dobon.net/vb/dotnet/control/firescrollevent.html から以下コードを参考にしました。 protected override void WndProc(ref Message m) { const int WM_HSCROLL = 0x114; const int WM_VSCROLL = 0x115; switch (m.Msg) { case WM_HSCROLL: Console.WriteLine( "水平スクロールバーがスクロールされました。"); break; case WM_VSCROLL: Console.WriteLine( "垂直スクロールバーがスクロールされました。"); break; } base.WndProc(ref m); }

  • シートからのListViewへのやり方

    はじめまして、宜しくお願い致します。 シートからのListViewへの読み込みで 早くListViewへ表示させたいのですが よろしければご教授できればと質問させて 頂きました。 下記のコードは現在利用しているコードです。 Private Sub UserForm_Initialize() With ListView1 .View = lvwReport .FullRowSelect = True .AllowColumnReorder = True .Gridlines = True .AllowColumnReorder = True '列幅の変更を許可 .CheckBoxes = True 'チェックボックスの追加 '.ForeColor = vbBlue .ColumnHeaders.Add , , "NO", 70 .ColumnHeaders.Add , "B", "名前", 100 .ColumnHeaders.Add , "C", "性別", 50 .ColumnHeaders.Add , "D", "血液型", 50 .ColumnHeaders.Add , "F", "生年月日", 100 For i = 4 To Cells(Rows.Count, "B").End(xlUp).Row Application.ScreenUpdating = False With .ListItems.Add .Text = Format(Cells(i, "B"), "0") '.Text = Right(Space(3) & .Text, 3) .SubItems(1) = Cells(i, "C") .SubItems(2) = Cells(i, "D") .SubItems(3) = Cells(i, "E") .SubItems(4) = Cells(i, "F") End With Next End With Application.ScreenUpdating = True

  • リストビューでのドラッグ&ドロップでの反転表示

    VC++にてエクスプローラもどきを作成していて、 ドラッグ&ドロップの操作を実装中です。 ListViewにて、OnLButtonDown内で マウスで押下されたフォルダイメージを CreateDragImageで作成しマウスカーソルを変更しました。 そして、ドラッグ中に、別フォルダへカーソルが移動した際、 そのフォルダを反転させるために、 OnDragOver内で、まず、全ての選択状態をクリアし、 for ( i = 0; i < list.GetItemCount(); i++ ){   item.iItem = i;   ListView_GetItem( list, &item2 );   item2.state = 0;   item2.stateMask = LVIS_SELECTED;   ListView_SetItem( list, &item ); } 対象となるフォルダのLV_ITEMを取得後に、 item.state = LVIS_SELECTED; item.stateMask = LVIS_SELECTED; ListView_SetItem( list, &item ); を行い選択状態に変更させました。 一応、ドラッグ&ドロップは、ある程度できているのですが、 描画が汚く、下記の2点について困っています。 1.ドラッグされたフォルダの反転表示が綺麗ではない(画像参照) 2.カーソル下に何のフォルダも無い場合は、   全ての選択状態をクリアだけでDragOverの処理を終了しているが、   前回選択状態にしたフォルダが反転表示(汚い状態で…)されたまま なにか、修正方法はありますでしょうか?

  • ListBox間で、お互いにデータをドラッグ&ドロップにて行き来できる

    ListBox間で、お互いにデータをドラッグ&ドロップにて行き来できるプログラムを作成しています。 ListBox1とListBox2があり、両方とも、10行までしか表示できないが、データは40以上あるのでスクロールバーが付きます。 まだ、同じデータは両方に同時に存在できません。 以上の条件下で、listBoxの上でドロップする場所によってデータが挿入される位置を変更できるようにしたいのです。 例えば、ListBoxの1番目と2番目の間でドロップすると、2番目にデータが挿入されて、以下の元々あったデータは1つづつズレていくといった感じです。 よろしくお願いします。

専門家に質問してみよう