1
を削除した後、リストビューにドラッグを右クリックしてここでのシナリオです:マウスの左ボタンを使用して左クリックドラッグは、項目
- 、ドロップターゲット上にリストビュー(詳細ビュー)から項目をドラッグします。すべてが良いです。
- マウスの右ボタンを使用して、同じ操作を行います。 All is good、マウスの左ボタンと同じ振る舞いを示します。
- マウスの左ボタンを使用して、アイテムをリストビューからドロップターゲットにドラッグします。ターゲットはドラッグされたアイテムをリストビューから削除します。すべてが良いです - アイテムは削除されます。
- 繰り返し#3。アイテムは削除され、後続のアイテムは他のマウスジェスチャーなしで正常にドラッグできます。
- 右マウスを使用して、#3を繰り返します。すべてがうまくいかない - ドラッグアクションは決して始まらない。
- マウスの左ボタンを使用して、リストビュー内の項目をクリックしてから離します。
- マウスの右ボタンを使用して、アイテムをドロップターゲットにドラッグします。すべてが良いです!
要約すると、左または右のマウスボタンを使用してリストビューからドラッグされたアイテムは同じ働きをします。ただし、ドロップターゲットがListviewからアイテムを削除すると(ドラッグされたアイテムであっても問題はありません)、マウスの左ボタンを使用してListviewアイテムがクリックされるまで、マウスの右ドラッグは機能しなくなります。
これは予想された動作ですかもしそうならばですか?回避策はありますか?左マウスボタンと右マウスボタンの両方を同じにすることはできますか?私はこれを行うことを好まないが、これは回避策であるように思わ
Private Sub ListView1_ItemDrag(sender As Object, e As ItemDragEventArgs) Handles ListView1.ItemDrag
ListView1.DoDragDrop(ListView1.SelectedItems.Item(0), DragDropEffects.Link)
End Sub
Private Sub TextBox1_DragDrop(sender As Object, e As DragEventArgs) Handles TextBox1.DragDrop
Dim item As ListViewItem = e.Data.GetData(GetType(ListViewItem))
If rbRemove.Checked Then
Dim index As Int32 = ListView1.SelectedIndices.Item(0)
For i As Int32 = 0 To ListView1.Items.Count - 1
Dim item1 As ListViewItem = ListView1.Items(i)
If item1 Is item Then
ListView1.Items.RemoveAt(i)
Exit For
End If
If index >= ListView1.Items.Count Then
index -= 1
End If
ListView1.Items(index).Selected = True
Next
End If
End Sub
Private Sub TextBox1_DragOver(sender As Object, e As DragEventArgs) Handles TextBox1.DragOver
e.Effect = DragDropEffects.Link
End Sub
AFAIKは期待された動作ではありません。バグのように聞こえる...サンプルコードを見せてもらえますか? –
もちろん、元の投稿に追加しました。 –