Spread中的属性设置存在继承关系,单元格的Locked属性值也可以从是在的行、列进行继承。
因为Cell、Row和Column的Locked属性值默认是false,如果我们直接取Cells[r,c].Locked就无法判断该单元格是否处于锁定状态。
不过,Spread给我们提供了GetCompositeInfo和GetDirectInfo方法来判断单元格属性的详细设置情况,比如通过下面代码我们可以准确的判断单元格是否处于锁定状态:
StyleInfo csi = new StyleInfo();
StyleInfo dsi = new StyleInfo();
fpSpread1.ActiveSheet.Models.Style.GetCompositeInfo(fpSpread1.ActiveSheet.ActiveRowIndex, fpSpread1.ActiveSheet.ActiveColumnIndex, -1, csi);
fpSpread1.ActiveSheet.Models.Style.GetDirectInfo(fpSpread1.ActiveSheet.ActiveRowIndex, fpSpread1.ActiveSheet.ActiveColumnIndex, dsi);
复制代码
GetCompositeInfo方法取到的是该单元格最终的属性设置,包括从Row和Column继承的结果
GetDirectInfo方法是用于判断是否直接设置了单元格的某个属性,而不是从Row和Column继承的结果