はじめまして。本やネットで調べましたが解決できず…、よろしければご教授ください。
VB6を使用。リストビューのレポート形式で、ドラッグによる複数行選択を行います。
もともとの機能で、リストアイテム(1列目)からのドラッグ→選択はできますが、
サブアイテム(2列目〜)を起点としたドラッグ→選択
を実現する方法はありますでしょうか。
リストビューのプロパティページで行全体を選択にチェックを入れてみて下さい。
きぬてさん、レスありがとうございます。
>リストビューのプロパティページで行全体を選択にチェック
入れているのです…。
クリックでの行全体の選択はできますが、ドラッグだと反応なしでして。
マウスのイベントで何とかならないものかと、模索中です。
要するに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
きぬてさん、どうもありがとうございます。
さっそく試させていただきました。
どこからドラッグしても選択できる!
と、感動いたしました。
いくらか不審な動きもあり、調整が必要なようです。
自分で動かしながら、少しずつ解決して行こうと思います。
難しいようなら、リストビュー以外のコントロールも試してみようかと。
よろしければまた、アドバイスをお願いいたします。
ツイート | ![]() |