我有一个包含行的DataGridView,但它没有使用完整的行选择。我在DataGridView中选择项目的方式只是该列的特定行的单个值。例如。 DataGridView1.Rows(e.RowIndex).Cells(e.ColumnIndex).Value.ToString
我试图找出如何实现这一点当我单击第1行中的First ColumnValue并将其拖动到TreeView控件时,它将为从第1行拖动的任何值创建NODE 1
答案 0 :(得分:-1)
在做了一些挖掘后,我能够找到我想要的东西。我知道堆栈溢出不是为我编写程序,但堆栈溢出是建立在“帮助”的概念中,将人们推向正确的方向而不是“拖钓”
以下是我找到并修改以使其正常工作的代码
由于我的TreeView是动态构建的,我不得不手动设置一个addhandler。通常,如果您已经有TreeView,您可以使用Handles,如datagridview drag
所示 AddHandler DirTree.DragEnter, AddressOf treeView1_DragEnter
AddHandler DirTree.DragDrop, AddressOf treeView1_DragDrop
Private dragedItemText As String
Private Sub treeView1_DragDrop(ByVal sender As Object, ByVal e As DragEventArgs)
Dim pt As Point
Dim destinationNode As TreeNode
pt = DirTree.PointToClient(New Point(e.X, e.Y))
destinationNode = DirTree.GetNodeAt(pt)
Dim dragedNode As New TreeNode()
dragedNode.Text = dragedItemText
lblTitle.Text = dragedItemText
destinationNode.Nodes.Add(dragedNode)
dragedItemText = ""
End Sub
Private Sub treeView1_DragEnter(ByVal sender As Object, ByVal e As DragEventArgs)
e.Effect = DragDropEffects.Copy
End Sub
Private Sub dataGridView1_MouseDown(ByVal sender As Object, ByVal e As MouseEventArgs) Handles DataGridView1.MouseDown
If e.Button = MouseButtons.Left Then
dragedItemText = DataGridView1.Rows(DataGridView1.CurrentCell.RowIndex).Cells(0).Value.ToString
'Cells(0) for first column
DataGridView1.DoDragDrop(dragedItemText, DragDropEffects.Copy)
End If
End Sub