【问题标题】:Why DragLeave event isn't fired when node dragged out of TreeView?为什么将节点拖出 TreeView 时不触发 DragLeave 事件?
【发布时间】:2014-03-29 05:03:58
【问题描述】:

正如我在其他问题中所读到的,大多数人会问为什么它会意外触发,但对我来说它根本不会触发。

using System;
using System.Windows.Forms;

namespace TestDrag
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            treeView1.ItemDrag += treeView1_ItemDrag;
            treeView1.DragLeave += treeView1_DragLeave;

            groupBox1.AllowDrop = true;
            groupBox1.DragEnter += groupBox1_DragEnter;
            groupBox1.DragDrop += groupBox1_DragDrop;

            treeView1.Nodes.Add("asd");
            treeView1.Nodes.Add("dsa");
        }

        void groupBox1_DragDrop(object sender, DragEventArgs e)
        {
            throw new NotImplementedException();
        }

        void groupBox1_DragEnter(object sender, DragEventArgs e)
        {
            e.Effect = DragDropEffects.Copy;
        }

        void treeView1_ItemDrag(object sender, ItemDragEventArgs e)
        {
            treeView1.DoDragDrop(e.Item, DragDropEffects.Copy);
        }

        void treeView1_DragLeave(object sender, EventArgs e)
        {
            MessageBox.Show(this, "This message never shows when node dragged out of treeView1", "This is bad", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }
    }
}

一旦项目被拖出,我想隐藏TreeView,但这个事件永远不会发生>_

【问题讨论】:

  • 我将AllowDrop 设为True,然后它进入了。
  • 嗯……尽管它们之间没有任何关系。把它作为答案,所以我可以接受。

标签: c# winforms drag-and-drop treeview nodes


【解决方案1】:

你必须让AllowDrop = True;

【讨论】:

    猜你喜欢
    • 2012-08-18
    • 1970-01-01
    • 1970-01-01
    • 2019-06-02
    • 2020-06-19
    • 2011-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多