private void SelectableAndMovableControl_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            // Moves Place in PetriNetEditor control
            if (this.Capture == true && this.bResizing != true && e.Button == MouseButtons.Left)
            {
                EditorSurface es = (EditorSurface)this.Parent;

                Point pt = this.PointToScreen(new Point(e.X, e.Y));
                pt    = es.PointToClient(pt);
                pt.X -= ptMouseDragOffset.X;
                pt.Y -= ptMouseDragOffset.Y;

                // If AutoScroll size is larger than editor control size
                if (es.AutoScroll == true)
                {
                    pt.X = Math.Max(es.AutoScrollPosition.X, pt.X);
                    pt.Y = Math.Max(es.AutoScrollPosition.Y, pt.Y);

                    pt.X = Math.Min(pt.X, es.AutoScrollMinSize.Width + es.AutoScrollPosition.X - this.Bounds.Width);
                    pt.Y = Math.Min(pt.Y, es.AutoScrollMinSize.Height + es.AutoScrollPosition.Y - this.Bounds.Height);
                }
                else
                {
                    pt.X = Math.Max(0, pt.X);
                    pt.Y = Math.Max(0, pt.Y);

                    pt.X = Math.Min(pt.X, es.Width - this.Bounds.Width);
                    pt.Y = Math.Min(pt.Y, es.Height - this.Bounds.Height);
                }

                foreach (object o in es.SelectedObjects)
                {
                    if (o is Control)
                    {
                        Control c = (Control)o;

                        if (c != this)
                        {
                            c.Location = new Point(c.Location.X + (pt.X - this.Location.X), c.Location.Y + (pt.Y - this.Location.Y));
                        }
                    }
                }

                this.Location = pt;

                // To slow down scrolling
                es.Refresh();
            }
        }