//根据当前选择点,判断选择区域 public void setSelectedNamed() { if (app == null) { app = new XApp(this.spreadsheetMain.Document, null); app.statu = SysStatu.SheetError; } AreasCollection areas = spreadsheetMain.Selection.Areas; /*if (currentXRange != null && RangeUtil.isInRange(areas, currentXRange.getRange()) < 0) * { * this.currentXRange = null; * }*/ this.currentXRange = null; rightClickBarManager.SetPopupContextMenu(spreadsheetMain, null); if (currentSheet != null && currentSheet.sheetName == "Config") { IList <Table> tables = spreadsheetMain.ActiveWorksheet.Tables.GetTables(spreadsheetMain.ActiveCell); if (tables.Count > 0 && tables[0].Name == "CFG_DATA") { if (RangeUtil.isInRange(areas, tables[0].DataRange) >= 0) { rightClickBarManager.SetPopupContextMenu(spreadsheetMain, menus["CfgData"]); } } } else if ((int)app.statu > 0) { XRSheet opSheet = app.getRSheetByName(spreadsheetMain.ActiveWorksheet.Name); //遍历当前Sheet全部命名区域,依次判断是否在区域范围内 if (opSheet != null) { foreach (var dicname in opSheet.ranges) { XRange xname = dicname.Value; int i = xname.isInRange(areas); if (i >= 0) { this.currentXRange = xname; rightClickBarManager.SetPopupContextMenu(spreadsheetMain, menus["Normal"]); //当选择点为命名区域时,将当前坐标写入单元格 //this.currentXRange.onMouseDown(); break;//如果判断到第一个区域,将该区域存储为currentXRange,退出循环判断 } } } else { currentXRange = null; } } }
public override int isInRange(Range range) { AreasCollection areas = getRange().Areas; foreach (Range irange in areas) { if (RangeUtil.isInRange(range, irange) > 0) { return(1); } } return(-1); }
//1:参数区域在本区域内;2:参数区域在本区域内,但包含表头;-1参数区域不在本区域内 //range为鼠标选择区域 public override int isInRange(Range range) { return(RangeUtil.isInRange(range, this.getRange())); }