Exemplo n.º 1
0
        void picPreview_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.ShiftKey || e.KeyCode == Keys.Menu || e.KeyCode == Keys.ControlKey)
            {
                return;
            }
            else if (e.KeyCode == Keys.Enter)
            {
                if (mode == EditingMode.TopLeft)
                {
                    mode = EditingMode.BottomRight;
                }
                else
                {
                    mode = EditingMode.TopLeft;
                }
                return;
            }
            Point loc = rectangle.GetPoint(mode);
            int   dif = e.Control ? 10 : 1;

            if (e.KeyCode == Keys.Left)
            {
                key |= KeyMode.Left;
            }
            else if (e.KeyCode == Keys.Right)
            {
                key |= KeyMode.Right;
            }
            else if (e.KeyCode == Keys.Up)
            {
                key |= KeyMode.Up;
            }
            else if (e.KeyCode == Keys.Down)
            {
                key |= KeyMode.Down;
            }
            loc.Offset(
                (key & KeyMode.Horizontal) != 0 ? (key.HasFlag(KeyMode.Left) ? -dif : dif) : 0,
                (key & KeyMode.Vertical) != 0 ? (key.HasFlag(KeyMode.Up) ? -dif : dif) : 0);
            loc = GetVerifiedLocation(loc);
            rectangle.SetPoint(e.Shift ? EditingMode.TopLeft | EditingMode.BottomRight : mode, loc);
            picPreview.Invalidate();
        }