0

これは非常に簡単だと思いますが、現在これに問題があります。リスト ビューがあり、アイテムをクリックするたびに、その名前を文字列変数に格納しています。リスト ビューの項目をクリックし、項目を選択せず​​にリスト ビュー内をもう一度クリックすると、フォーカスが失われず、前に選択した項目の名前が文字列変数に格納されます。私がしたいのは、アイテムをクリックしてから、アイテムを選択せず​​にリストビューの内側または外側をクリックするたびに、フォーカスを失い、アイテムの名前を文字列変数に保存しないことです。

Private Sub lvReceivedFiles_MouseClick(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles lvReceivedFiles.MouseClick

    If e.Button = Windows.Forms.MouseButtons.Left Then

        If lvRecievedFiles.FocusedItem.Selected = True

              lvReceivedFiles.FullRowSelect = True

              'When an item is clicked in the list view, store its name.
              fName = "\" & Path.GetFileName(lvReceivedFiles.FocusedItem.Text)

        Else

              'This part here doesn't make any sense because it doesn't execute
              'every time I click in the list view without selecting any item.
              'ListView.FocusedItem.Selected is always true.

        End If

    End If

End Sub
4

2 に答える 2

0

この状況を処理するより良い方法は、MouseClick イベントを使用する代わりに SelectedIndexChanged イベントを使用することです。このコードを確認してください。

Private Sub ListView1_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles lvReceivedFiles.SelectedIndexChanged

If lvRecievedFiles.FocusedItem.Selected = True

          lvReceivedFiles.FullRowSelect = True

          'When an item is clicked in the list view, store its name.
          fName = "\" & Path.GetFileName(lvReceivedFiles.FocusedItem.Text)

Else

          'This part here doesn't make any sense because it doesn't execute
          'every time I click in the list view without selecting any item.
          'ListView.FocusedItem.Selected is always true.

End If

End Sub
于 2013-02-11T09:46:19.000 に答える
0

でお試しいただけますMouseUp event

Private Sub lvlcheckin_MouseUp(sender As Object, e As MouseEventArgs) Handles lvlcheckin.MouseUp
    If e.Button = Windows.Forms.MouseButtons.Left Then

        If lvlcheckin.FocusedItem.Selected = True Then
            lvlcheckin.FullRowSelect = True
        Else
            lvlcheckin.FullRowSelect = False
        End If
    End If
End Sub
于 2013-02-11T09:51:20.680 に答える