在动态创建的对象

时间:2015-07-10 07:33:52

标签: c#

我正在开展一个我想要的项目"拖动"从列表视图到面板的数据。目标是人们可以在列表视图中选择信息,然后在其他面板上的某种流程图上将带有该信息的面板放在上面。

几乎所有的代码都已经有效,但我还有一件事情仍然存在。当我在列表视图上执行鼠标按下时,正在生成一个面板,其上有几个标签可以拖动。以下代码是可读性的简化版本。

private void createPlayerPanel()
        {
            var coordinates = this.PointToClient(Cursor.Position);


            // CREATE THE PANEL
            Panel panPlayer = new Panel();

            // SETUP THE PANEL
            panPlayer.Name = "panPlayer1";
            panPlayer.Width = 200;
            panPlayer.Height = 50;
            panPlayer.BackColor = Color.Gainsboro;
            panPlayer.Click += new EventHandler(this.panClick);
            panPlayer.MouseDown += new MouseEventHandler(panMouseDown);

            // ADD THE PANEL TO THE FORM
            this.Controls.Add(panPlayer);

            // BRING THE PANEL TO THE FRONT OF THE FORM
            panPlayer.BringToFront();
            panPlayer.Location = new Point(coordinates.X - 14, coordinates.Y - 12);
}

        public bool Dragging = false;
        Point location;

        Panel panSelected;
        private void panMouseDown(object sender, MouseEventArgs e)
        {
            panSelected = (Panel)sender;

            Dragging = true;

            location = e.Location;
        }

然而,使用相同的鼠标向下我想将面板拖动到流程图中。因此,在一个平滑的移动中,单击列表视图中的信息并将其拖到第二个面板。

当我生成面板时,我还包括一个Mouse Down mouseeventhandler但当我执行mousedown时它还没有激活。因此,当我释放鼠标然后再次按住鼠标时,它工作正常,我可以将面板拖到它的新位置。但我想在一个动作中做到这一点。所以MOUSE DOWN&gt;生成面板&gt; <激活小鼠事件> DRAG PANEL

有没有办法在我完成创建时激活面板的mousedown事件?

0 个答案:

没有答案