ListViewのDragOverイベント中にGetItemAtでListViewItemは取得できない?
- 題名: ListViewのDragOverイベント中にGetItemAtでListViewItemは取得できない?
- 著者: アフロ
- 日時: 2004/01/13 20:35:58
- ID: 2138
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: ListViewのDragOverイベント中にGetItemAtでListViewItemは取得できない?
- 著者: 0159
- 日時: 2004/01/13 21:49:38
- ID: 2140
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: ListViewのDragOverイベント中にGetItemAtでListViewItemは取得できない?
- 著者: アフロ
- 日時: 2004/01/15 10:51:00
- ID: 2156
- この記事の返信元:
- この記事への返信:
- ツリーを表示
ListView上にドラッグされた時マウスがある場所のListViewItemを取得して バックグラウンドカラーを変更したいと思い、GetItemAtを使ってListViewItem の取得をこころ見ましたがうまく取得できませんでした。 DragOverイベント中はGetItemAtではListViewItemを取得出来ないのでしょうか? 又MouseHoveイベントも同様でした。 何がしたいのかといいますと、エキスプローラでファイルを他のフォルダに移すとき フォルダが反転表示になりますが、ああいった感じにしたいと思っています。 ですから、DragOverでの処理が妥当だと思うのですが他によい方法はあるのでしょうか。 Private Sub ListView1_DragOver(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles ListView1.DragOver If e.KeyState = 5 Then e.Effect = DragDropEffects.Copy Else e.Effect = DragDropEffects.Move End If Dim listv As ListView = sender '問題のコードです Dim listvi As ListViewItem = listv.GetItemAt(e.X, e.Y) 'ここでどうしてもNothingになってしまう If listvi Is Nothing Then Exit Sub Dim i As Integer Dim flg As Boolean For i = 0 To listv.Items.Count - 1 If listv.Items(i).BackColor.ToArgb = Color.BlueViolet.ToArgb Then If listv.Items(i).Text <> listvi.Text Then listv.Items(i).BackColor = Color.Black listvi.BackColor = Color.BlueViolet flg = True Exit For End If End If Next End Sub