private AxSchemeItem[] GetSortArrayBySelected(int sortOrder)
        {
            int _sortOrder = sortOrder;

            string[]       _axItemXY   = new string[axSuitSchemeView1.SelectedAxSchemeItems.Count];
            AxSchemeItem[] _axitemSort = new AxSchemeItem[axSuitSchemeView1.SelectedAxSchemeItems.Count];
            int            i           = 0;

            foreach (AxSchemeItem item in axSuitSchemeView1.SelectedAxSchemeItems)
            {
                Array.Resize <string>(ref _axItemXY, i + 1);
                Array.Resize <AxSchemeItem>(ref _axitemSort, i + 1);
                if (sortOrder == 1)
                {
                    _axItemXY[i] = item.Location.X.ToString("00000");
                }
                else if (sortOrder == 2)
                {
                    _axItemXY[i] = item.Location.Y.ToString("00000");
                }
                _axitemSort[i] = item;
                i++;
            }
            Array.Sort(_axItemXY, _axitemSort);
            return(_axitemSort);
        }
        /// <summary>
        /// 改变水平间距
        /// </summary>
        /// <param name="increment">变动增量,负数为减少,0为清除</param>
        private void ChangSpaceH(int increment)
        {
            if (axSuitSchemeView1.ActivedSchemeItem == null || axSuitSchemeView1.SelectedAxSchemeItems.Count <= 0)
            {
                return;
            }
            AxSchemeItem[] items = GetSortArrayBySelected(1);
            int            index = 0;

            //取得参照项的位置和索引
            for (int i = 0; i < items.Length; i++)
            {
                AxSchemeItem item = items[i];
                if (item.Name == axSuitSchemeView1.ActiveControl.Name)
                {
                    index = i;
                    break;
                }
            }
            //调整,以参照项为准,在参照项左边的
            for (int i = index - 1; i >= 0; i--)
            {
                AxSchemeItem item = items[i];
                if (increment != 0)
                {
                    item.Location = new Point(item.Location.X + increment * (-1) * (index - i), item.Location.Y);
                }
                else
                {
                    Point pt = item.Location;
                    pt.Offset(-(item.Right - items[i + 1].Left) + 2 * AxSchemeItemBase.MARGIN, 0);
                    item.Location = pt;
                }
            }
            //参照项右边的
            for (int i = index + 1; i < items.Length; i++)
            {
                AxSchemeItem item = items[i];
                if (increment != 0)
                {
                    item.Location = new Point(item.Location.X + increment * (i - index), item.Location.Y);
                }
                else
                {
                    Point pt = item.Location;
                    pt.Offset(items[i - 1].Right - item.Left - 2 * AxSchemeItemBase.MARGIN, 0);
                    item.Location = pt;
                }
            }
        }
        /// <summary>
        /// 改变垂直间距
        /// </summary>
        /// <param name="increment">变动增量,负数为减少,0为清除</param>
        private void ChangSpaceV(int increment)
        {
            AxSchemeItem[] items = GetSortArrayBySelected(2);
            int            index = 0;

            //取得参照项的位置和索引
            for (int i = 0; i < items.Length; i++)
            {
                AxSchemeItem item = items[i];
                if (item.Name == axSuitSchemeView1.ActiveControl.Name)
                {
                    index = i;
                    break;
                }
            }
            //调整,以参照项为准,在参照项上边的
            for (int i = index - 1; i >= 0; i--)
            {
                AxSchemeItem item = items[i];
                if (increment != 0)
                {
                    item.Location = new Point(item.Location.X, item.Location.Y + increment * (-1) * (index - i));
                }
                else
                {
                    Point pt = item.Location;
                    pt.Offset(0, -(item.Bottom - items[i + 1].Top) + 2 * AxSchemeItemBase.MARGIN);
                    item.Location = pt;
                }
            }
            //参照项下边的
            for (int i = index + 1; i < items.Length; i++)
            {
                AxSchemeItem item = items[i];
                if (increment != 0)
                {
                    item.Location = new Point(item.Location.X, item.Location.Y + increment * (i - index));
                }
                else
                {
                    Point pt = item.Location;
                    pt.Offset(0, items[i - 1].Bottom - item.Top - 2 * AxSchemeItemBase.MARGIN);
                    item.Location = pt;
                }
            }
        }