リストビュー(レポート形式)の複数行選択について


ファインディングネコ  2005-11-07 19:03:58  No: 127390

はじめまして。本やネットで調べましたが解決できず…、よろしければご教授ください。

VB6を使用。リストビューのレポート形式で、ドラッグによる複数行選択を行います。
もともとの機能で、リストアイテム(1列目)からのドラッグ→選択はできますが、
サブアイテム(2列目〜)を起点としたドラッグ→選択
を実現する方法はありますでしょうか。


きぬて  2005-11-07 21:58:39  No: 127391

リストビューのプロパティページで行全体を選択にチェックを入れてみて下さい。


ネコ  2005-11-08 00:36:31  No: 127392

きぬてさん、レスありがとうございます。

>リストビューのプロパティページで行全体を選択にチェック
入れているのです…。
クリックでの行全体の選択はできますが、ドラッグだと反応なしでして。
マウスのイベントで何とかならないものかと、模索中です。


きぬて  2005-11-08 02:51:35  No: 127393

要するにWindows UIとはちがった動きを実現したいわけですね。
以下のような感じでどうでしょう。

Private blnMouseDown As Boolean  'モジュールレベル変数

Private Sub ListView1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
  
  blnMouseDown = True
  
End Sub

Private Sub ListView1_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)

  If blnMouseDown Then
    If Not ListView1.HitTest(x, y) Is Nothing Then
      lvwResult.HitTest(x, y).Selected = True
    End If
  End If
  
End Sub

Private Sub ListView1_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)

  blnMouseDown = False

End Sub


ネコ  2005-11-09 01:31:51  No: 127394

きぬてさん、どうもありがとうございます。
さっそく試させていただきました。

どこからドラッグしても選択できる!
と、感動いたしました。
いくらか不審な動きもあり、調整が必要なようです。
自分で動かしながら、少しずつ解決して行こうと思います。
難しいようなら、リストビュー以外のコントロールも試してみようかと。

よろしければまた、アドバイスをお願いいたします。


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

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






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