我有一个有2个分割器的表单。 一个分割器将形式分割成2列。 另一个将左列分成两行。
在左栏,顶部的“行”我有一个树视图。 在右栏,我有一个图像查看器。
我想将树视图节点放到图像查看器上并用它做一些事情。
观众被称为“观众”。树视图称为“EntityTreeView”
代码如下:
private void viewer_DragEnter(object sender, DragEventArgs e)
{
e.Effect = DragDropEffects.Move;
}
private void viewer_DragDrop(object sender, DragEventArgs e)
{
TreeNode droppedNode;
droppedNode = (TreeNode)e.Data.GetData("System.Windows.Forms.TreeNode");
MessageBox.Show(String.Format("You dropped a node with text: {0}\n on the viewer at X:{1} Y:{2}", droppedNode.Text, e.X, e.Y), "Drag Drop Finished", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
private void EntityTreeView_ItemDrag(object sender, ItemDragEventArgs e)
{
DoDragDrop(e.Item, DragDropEffects.Move);
}
private void EntityTreeView_DragDrop(object sender, DragEventArgs e)
{
e.Effect = DragDropEffects.Move;
}
private void EntityTreeView_DragEnter(object sender, DragEventArgs e)
{
e.Effect = DragDropEffects.None;
}
然而,每当我抓住一个树视图节点并开始拖动它时,它会立即显示“否”图标(即禁止吸烟的标志......带有斜线的圆圈,无论是什么叫做)。
知道我做错了吗?
提前感谢您的帮助。
答案 0 :(得分:4)
到目前为止,您的代码看起来很好。您需要做的是将“viewer”上的 AllowDrop 属性设置为 true 。
答案 1 :(得分:0)
您需要将DragEnter事件中的e.Effect设置为DragDropEffects.Move
private void EntityTreeView_DragEnter(object sender, DragEventArgs e)
{
e.Effect = DragDropEffects.Move
}