|
分類:[.NET 全般]
先ほどの質問でD&Dは成功する用になりましたが、動的に処理を関連付けた他のDataGridViewの同じ位置のセルにも表示されてしまうのですが、
これをドロップしたDataGridViewのみにする方法はありますでしょうか?
以下はコードになります。
Private Sub dgvDragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs)
'変数
Dim dgv As New DataGridView
'Dim dgvname As String
Dim clientP As Point
Dim hti As DataGridView.HitTestInfo
If e.Data.GetDataPresent(GetType(String)) Then
Dim dgvcellvalue = e.Data.GetData(GetType(String))
dgv = DirectCast(sender, DataGridView)
''スクリーン座標を変数へ入れる
Dim target As New Point(e.X, e.Y)
''スクリーン座標をクライアント座標へ変換
clientP = dgv.PointToClient(target)
'座標をDataGridViewのHitTestInfoへ入れる
hti = dgv.HitTest(clientP.X, clientP.Y)
'ここでドロップしたデータをセルへ入れる
dgv(hti.ColumnIndex, hti.RowIndex).Value = dgvcellvalue
dgvdragname = dgv.Name
MessageBox.Show("ドラッグアンドドロップ完了")
End If
End Sub
|