コード例 #1
0
        void AutoFitRow()
        {
            RowLayout viewportResizingRowLayoutFromY;

            if (IsResizingRows)
            {
                EndRowResizing();
            }
            HitTestInformation savedHitTestInformation = GetHitInfo();

            if (savedHitTestInformation.HitTestType == HitTestType.RowHeader)
            {
                bool flag = false;
                viewportResizingRowLayoutFromY = GetViewportResizingRowLayoutFromY(savedHitTestInformation.RowViewportIndex, savedHitTestInformation.HitPoint.Y);
                if (viewportResizingRowLayoutFromY == null)
                {
                    if (savedHitTestInformation.RowViewportIndex == 0)
                    {
                        viewportResizingRowLayoutFromY = GetViewportResizingRowLayoutFromY(-1, savedHitTestInformation.HitPoint.Y);
                    }
                    if ((viewportResizingRowLayoutFromY == null) && ((savedHitTestInformation.RowViewportIndex == -1) || (savedHitTestInformation.RowViewportIndex == 0)))
                    {
                        viewportResizingRowLayoutFromY = GetColumnHeaderResizingRowLayoutFromY(savedHitTestInformation.HitPoint.Y);
                        flag = true;
                    }
                }
                if (viewportResizingRowLayoutFromY != null)
                {
                    int row = viewportResizingRowLayoutFromY.Row;
                    if (!flag)
                    {
                        AutoFitRowInternal(row, true, false);
                    }
                    else
                    {
                        RowAutoFitUndoAction command = new RowAutoFitUndoAction(ActiveSheet, new RowAutoFitExtent[] { new RowAutoFitExtent(row) }, true);
                        DoCommand(command);
                    }
                }
            }
            else if (savedHitTestInformation.HitTestType == HitTestType.Corner)
            {
                viewportResizingRowLayoutFromY = GetColumnHeaderRowLayoutModel().FindRow(savedHitTestInformation.HeaderInfo.ResizingRow);
                if (viewportResizingRowLayoutFromY != null)
                {
                    int num2 = viewportResizingRowLayoutFromY.Row;
                    RowAutoFitUndoAction action2 = new RowAutoFitUndoAction(ActiveSheet, new RowAutoFitExtent[] { new RowAutoFitExtent(num2) }, true);
                    DoCommand(action2);
                }
            }
        }
コード例 #2
0
        void AutoFitRowForTouch(HitTestInformation hi)
        {
            RowLayout viewportResizingRowLayoutFromYForTouch;

            if (IsTouchResizingRows)
            {
                EndTouchRowResizing();
            }
            if (hi.HitTestType == HitTestType.RowHeader)
            {
                bool flag = false;
                viewportResizingRowLayoutFromYForTouch = GetViewportResizingRowLayoutFromYForTouch(hi.RowViewportIndex, hi.HitPoint.Y);
                if (viewportResizingRowLayoutFromYForTouch == null)
                {
                    if (hi.RowViewportIndex == 0)
                    {
                        viewportResizingRowLayoutFromYForTouch = GetViewportResizingRowLayoutFromYForTouch(-1, hi.HitPoint.Y);
                    }
                    if ((viewportResizingRowLayoutFromYForTouch == null) && ((hi.RowViewportIndex == -1) || (hi.RowViewportIndex == 0)))
                    {
                        viewportResizingRowLayoutFromYForTouch = GetColumnHeaderResizingRowLayoutFromYForTouch(hi.HitPoint.Y);
                        flag = true;
                    }
                }
                if (viewportResizingRowLayoutFromYForTouch != null)
                {
                    int row = viewportResizingRowLayoutFromYForTouch.Row;
                    if (!flag)
                    {
                        AutoFitRowInternal(row, true, false);
                    }
                    else
                    {
                        RowAutoFitUndoAction command = new RowAutoFitUndoAction(ActiveSheet, new RowAutoFitExtent[] { new RowAutoFitExtent(row) }, true);
                        DoCommand(command);
                    }
                }
            }
            else if (hi.HitTestType == HitTestType.Corner)
            {
                viewportResizingRowLayoutFromYForTouch = GetColumnHeaderRowLayoutModel().FindRow(hi.HeaderInfo.ResizingRow);
                if (viewportResizingRowLayoutFromYForTouch != null)
                {
                    int num2 = viewportResizingRowLayoutFromYForTouch.Row;
                    RowAutoFitUndoAction action2 = new RowAutoFitUndoAction(ActiveSheet, new RowAutoFitExtent[] { new RowAutoFitExtent(num2) }, true);
                    DoCommand(action2);
                }
            }
        }
コード例 #3
0
        void AutoFitRowInternal(int rowIndex, bool supportUndo, bool isColumnHeader)
        {
            List <RowAutoFitExtent> list = new List <RowAutoFitExtent>();

            if (ActiveSheet.IsSelected(rowIndex, -1))
            {
                foreach (CellRange range in ActiveSheet.Selections)
                {
                    if (range.Column == -1)
                    {
                        int num  = (range.Row == -1) ? 0 : range.Row;
                        int num2 = (range.Row == -1) ? ActiveSheet.RowCount : range.RowCount;
                        for (int i = num; i < (num + num2); i++)
                        {
                            list.Add(new RowAutoFitExtent(i));
                        }
                    }
                }
            }
            else
            {
                list.Add(new RowAutoFitExtent(rowIndex));
            }
            RowAutoFitExtent[] rows = new RowAutoFitExtent[list.Count];
            list.CopyTo(rows);
            RowAutoFitUndoAction command = new RowAutoFitUndoAction(ActiveSheet, rows, isColumnHeader);

            if (supportUndo)
            {
                DoCommand(command);
            }
            else
            {
                command.Execute(this);
            }
        }