示例#1
0
        /// <summary>
        /// Action สำหรับเพิ่ม Row ใหม่
        /// </summary>
        /// <param name="sender"></param>
        void actionAddNewRow_Action(object sender)
        {
            if (sender is SpreadView)
            {
                SpreadView view       = (SpreadView)sender;
                int        sheetIndex = view.ActiveSheetIndex;
                if (sheetIndex < 0)
                {
                    return;
                }

                if (RowAdding != null)
                {
                    EventRowAdding eArg = new EventRowAdding();
                    RowAdding(this, eArg);
                    if (eArg.Cancel)
                    {
                        return;
                    }
                }

                SheetView sheet = view.Sheets[sheetIndex];
                if (sheet.RowCount == 0)
                { // ถ้าไม่ซักแถว
                    sheet.AddRows(0, 1);
                    sheet.SetActiveCell(sheet.RowCount - 1, 1, true);
                    sheet.SetActiveCell(sheet.RowCount - 1, 0, true);
                }
                else
                {
                    // เช็คดูก่อนว่าแถวสุดท้าย ว่างหรือไม่ ??
                    int lastRowNonEmpty = sheet.GetLastNonEmptyRow(NonEmptyItemFlag.Data);
                    if (lastRowNonEmpty == sheet.RowCount - 1)
                    {  // ถ้าแถวสุดท้ายไม่ว่าง ก็เพิ่มแถวได้เลย
                        // Add new row.
                        sheet.AddRows(sheet.RowCount, 1);
                    }

                    sheet.SetActiveCell(sheet.RowCount - 1, 0, true);
                    view.ShowActiveCell(VerticalPosition.Center, HorizontalPosition.Center);
                }

                if (RowAdded != null)
                {
                    RowAdded(this, sheet.RowCount - 1);
                }
            }
        }