コード例 #1
0
        void AutoFitColumn()
        {
            ColumnLayout viewportResizingColumnLayoutFromX;

            if (IsResizingColumns)
            {
                EndColumnResizing();
            }
            HitTestInformation savedHitTestInformation = GetHitInfo();

            if (savedHitTestInformation.HitTestType == HitTestType.ColumnHeader)
            {
                viewportResizingColumnLayoutFromX = GetViewportResizingColumnLayoutFromX(savedHitTestInformation.ColumnViewportIndex, savedHitTestInformation.HitPoint.X);
                bool flag = false;
                if (viewportResizingColumnLayoutFromX == null)
                {
                    if (savedHitTestInformation.ColumnViewportIndex == 0)
                    {
                        viewportResizingColumnLayoutFromX = GetViewportResizingColumnLayoutFromX(-1, savedHitTestInformation.HitPoint.X);
                    }
                    if ((viewportResizingColumnLayoutFromX == null) && ((savedHitTestInformation.ColumnViewportIndex == 0) || (savedHitTestInformation.ColumnViewportIndex == -1)))
                    {
                        viewportResizingColumnLayoutFromX = GetRowHeaderResizingColumnLayoutFromX(savedHitTestInformation.HitPoint.X);
                        flag = true;
                    }
                }
                if (viewportResizingColumnLayoutFromX != null)
                {
                    int column = viewportResizingColumnLayoutFromX.Column;
                    if (!flag)
                    {
                        AutoFitColumnInternal(column, true, false);
                    }
                    else
                    {
                        ColumnAutoFitUndoAction command = new ColumnAutoFitUndoAction(ActiveSheet, new ColumnAutoFitExtent[] { new ColumnAutoFitExtent(column) }, true);
                        DoCommand(command);
                    }
                }
            }
            else if (savedHitTestInformation.HitTestType == HitTestType.Corner)
            {
                viewportResizingColumnLayoutFromX = GetRowHeaderColumnLayoutModel().FindColumn(savedHitTestInformation.HeaderInfo.ResizingColumn);
                if (viewportResizingColumnLayoutFromX != null)
                {
                    int num2 = viewportResizingColumnLayoutFromX.Column;
                    ColumnAutoFitUndoAction action2 = new ColumnAutoFitUndoAction(ActiveSheet, new ColumnAutoFitExtent[] { new ColumnAutoFitExtent(num2) }, true);
                    DoCommand(action2);
                }
            }
        }
コード例 #2
0
        void AutoFitColumnForTouch(HitTestInformation hi)
        {
            ColumnLayout viewportResizingColumnLayoutFromXForTouch;

            if (IsTouchResizingColumns)
            {
                EndTouchColumnResizing();
            }
            if (hi.HitTestType == HitTestType.ColumnHeader)
            {
                viewportResizingColumnLayoutFromXForTouch = GetViewportResizingColumnLayoutFromXForTouch(hi.ColumnViewportIndex, hi.HitPoint.X);
                bool flag = false;
                if (viewportResizingColumnLayoutFromXForTouch == null)
                {
                    if (hi.ColumnViewportIndex == 0)
                    {
                        viewportResizingColumnLayoutFromXForTouch = GetViewportResizingColumnLayoutFromXForTouch(-1, hi.HitPoint.X);
                    }
                    if ((viewportResizingColumnLayoutFromXForTouch == null) && ((hi.ColumnViewportIndex == 0) || (hi.ColumnViewportIndex == -1)))
                    {
                        viewportResizingColumnLayoutFromXForTouch = GetRowHeaderResizingColumnLayoutFromXForTouch(hi.HitPoint.X);
                        flag = true;
                    }
                }
                if (viewportResizingColumnLayoutFromXForTouch != null)
                {
                    int column = viewportResizingColumnLayoutFromXForTouch.Column;
                    if (!flag)
                    {
                        AutoFitColumnInternal(column, true, false);
                    }
                    else
                    {
                        ColumnAutoFitUndoAction command = new ColumnAutoFitUndoAction(ActiveSheet, new ColumnAutoFitExtent[] { new ColumnAutoFitExtent(column) }, true);
                        DoCommand(command);
                    }
                }
            }
            else if (hi.HitTestType == HitTestType.Corner)
            {
                viewportResizingColumnLayoutFromXForTouch = GetRowHeaderColumnLayoutModel().FindColumn(hi.HeaderInfo.ResizingColumn);
                if (viewportResizingColumnLayoutFromXForTouch != null)
                {
                    int num2 = viewportResizingColumnLayoutFromXForTouch.Column;
                    ColumnAutoFitUndoAction action2 = new ColumnAutoFitUndoAction(ActiveSheet, new ColumnAutoFitExtent[] { new ColumnAutoFitExtent(num2) }, true);
                    DoCommand(action2);
                }
            }
        }
コード例 #3
0
        void AutoFitColumnInternal(int columnIndex, bool supportUndo, bool isRowHeader)
        {
            List <ColumnAutoFitExtent> list = new List <ColumnAutoFitExtent>();

            if (ActiveSheet.IsSelected(-1, columnIndex))
            {
                foreach (CellRange range in ActiveSheet.Selections)
                {
                    if (range.Row == -1)
                    {
                        int num  = (range.Column == -1) ? 0 : range.Column;
                        int num2 = (range.Column == -1) ? ActiveSheet.ColumnCount : range.ColumnCount;
                        for (int i = num; i < (num + num2); i++)
                        {
                            list.Add(new ColumnAutoFitExtent(i));
                        }
                    }
                }
            }
            else
            {
                list.Add(new ColumnAutoFitExtent(columnIndex));
            }
            ColumnAutoFitExtent[] columns = new ColumnAutoFitExtent[list.Count];
            list.CopyTo(columns);
            ColumnAutoFitUndoAction command = new ColumnAutoFitUndoAction(ActiveSheet, columns, isRowHeader);

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