예제 #1
0
        protected override void OnMouseDown(MouseEventArgs e)
        {
            base.OnMouseDown(e);
            if (Locked)
            {
                return;
            }

            ObjectCollection selectedObjects = new ObjectCollection();

            Designer.SelectedObjects.CopyTo(selectedObjects);

            FMouseDown              = true;
            FMouseMoved             = false;
            FEventArgs.X            = e.X - Offset.X;
            FEventArgs.Y            = e.Y - Offset.Y;
            FEventArgs.Button       = e.Button;
            FEventArgs.ModifierKeys = ModifierKeys;
            FEventArgs.Handled      = false;

            if (FMode2 == WorkspaceMode2.None)
            {
                // find an object under the mouse
                for (int i = Designer.Objects.Count - 1; i >= 0; i--)
                {
                    ComponentBase c = Designer.Objects[i] as ComponentBase;
                    if (c != null)
                    {
                        c.HandleMouseDown(FEventArgs);
                        if (FEventArgs.Handled)
                        {
                            FMode2 = FEventArgs.Mode;
                            break;
                        }
                    }
                }
            }
            else if (FEventArgs.ActiveObject != null)
            {
                FEventArgs.ActiveObject.HandleMouseDown(FEventArgs);
            }

            if (!selectedObjects.Equals(Designer.SelectedObjects))
            {
                Designer.SelectionChanged(FPageDesigner);
            }

            FLastMousePoint.X = FEventArgs.X;
            FLastMousePoint.Y = FEventArgs.Y;
            FSelectionRect    = new RectangleF(FEventArgs.X, FEventArgs.Y, 0, 0);
            FGuides.CreateVirtualGuides();
            Refresh();
        }