/// <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); } } }