public void AddNodes(MsoSegmentType segmentType, MsoEditingType editingType, Single x1, Single y1) { object[] paramArray = new object[4]; paramArray[0] = segmentType; paramArray[1] = editingType; paramArray[2] = x1; paramArray[3] = y1; InstanceType.InvokeMember("AddNodes", BindingFlags.InvokeMethod, null, ComReference, paramArray, XlLateBindingApiSettings.XlThreadCulture); }
public void Insert(int index, MsoSegmentType segmentType, MsoEditingType editingType, Single x1, Single y1, Single x2, Single y2, Single x3, Single y3) { object[] paramArray = new object[9]; paramArray[0] = index; paramArray[1] = segmentType; paramArray[2] = editingType; paramArray[3] = x1; paramArray[4] = y1; paramArray[5] = x2; paramArray[6] = y2; paramArray[7] = x3; paramArray[8] = y3; InstanceType.InvokeMember("Insert", BindingFlags.InvokeMethod, null, ComReference, paramArray, XlLateBindingApiSettings.XlThreadCulture); }
public XlFreeformBuilder BuildFreeform(MsoEditingType editingType, Single x1, Single y1) { object[] parameters = new object[3]; parameters[0] = editingType; parameters[1] = x1; parameters[2] = y1; object returnValue = InstanceType.InvokeMember("BuildFreeform", BindingFlags.InvokeMethod | BindingFlags.OptionalParamBinding, null, ComReference, parameters, XlLateBindingApiSettings.XlThreadCulture); if (null == returnValue) { return(null); } XlFreeformBuilder newClass = new XlFreeformBuilder(this, returnValue); ListChildReferences.Add(newClass); return(newClass); }
/// <summary>在当前形状中添加一点,然后绘制一个从当前节点到添加的最后一个节点的线条。 /// </summary> /// <param name="SegmentType">要添加的线段的类型。</param> /// <param name="EditingType">顶点的编辑属性。</param> /// <param name="X1">如果新线段的 EditingType 为 msoEditingAuto,则此参数指定从文档左上角到新线段终点的水平距离(以磅为单位)。如果新节点的 EditingType 为 msoEditingCorner,则此参数指定从文档左上角到新线段的第一个控制点的水平距离(以磅为单位)。</param> /// <param name="Y1">如果新线段的 EditingType 为 msoEditingAuto,则此参数指定从文档左上角到新线段终点的水平距离(以磅为单位)。如果新节点的 EditingType 为 msoEditingCorner,则此参数指定从文档左上角到新线段的第一个控制点的水平距离(以磅为单位)。</param> /// <param name="X2">如果新线段的 EditingType 为 msoEditingCorner,则此参数指定从文档左上角到新线段的第二个控制点的水平距离(以磅为单位)。如果新线段的 EditingType 为 msoEditingAuto,则不为该参数指定值。</param> /// <param name="Y2">如果新线段的 EditingType 为 msoEditingCorner,则此参数指定从文档左上角到新线段的第二个控制点的水平距离(以磅为单位)。如果新线段的 EditingType 为 msoEditingAuto,则不为该参数指定值。</param> /// <param name="X3">如果新线段的 EditingType 为 msoEditingCorner,则此参数指定从文档左上角到新线段的第二个控制点的水平距离(以磅为单位)。如果新线段的 EditingType 为 msoEditingAuto,则不为该参数指定值。</param> /// <param name="Y3">如果新线段的 EditingType 为 msoEditingCorner,则此参数指定从文档左上角到新线段的第二个控制点的水平距离(以磅为单位)。如果新线段的 EditingType 为 msoEditingAuto,则不为该参数指定值。</param> public void AddNodes(MsoSegmentType SegmentType, MsoEditingType EditingType, float X1, float Y1, float? X2 = null, float? Y2 = null, float? X3 = null, float? Y3 = null) { _objaParameters = new object[8] { SegmentType, EditingType, X1, Y1, X2 == null ? System.Type.Missing : X2, Y2 == null ? System.Type.Missing : Y2, X3 == null ? System.Type.Missing : X3, Y3 == null ? System.Type.Missing : Y3 }; _objFreeformBuilder.GetType().InvokeMember("AddNodes", BindingFlags.InvokeMethod, null, _objFreeformBuilder, _objaParameters); }
/// <summary>建立一个任意多边形对象。返回一个 FreeformBuilder 对象,该对象代表正在创建的任意多边形。用 AddNodes 方法向任意多边形添加线段。如果任意多边形中已包含了一个以上的线段,则可用 ConvertToShape 方法将 FreeformBuilder 对象转换为 Shape 对象,该对象将具有在 FreeformBuilder 对象中定义的几何属性。 /// </summary> /// <param name="EditingType">第一个节点的编辑属性。</param> /// <param name="X1">任意图形中第一个节点相对于文档左上角的位置(以磅为单位)。</param> /// <param name="Y1">任意图形中第一个节点相对于文档左上角的位置(以磅为单位)。</param> /// <returns></returns> public FreeformBuilder BuildFreeform(MsoEditingType EditingType, float X1, float Y1) { _objaParameters = new object[3] { EditingType, X1, Y1 }; return new FreeformBuilder(_objShapes.GetType().InvokeMember("BuildFreeform", BindingFlags.InvokeMethod, null, _objShapes, _objaParameters)); }
/// <summary>设置由 Index 指定的结点的编辑类型。如果该结点是一个曲线的控制点,本方法将对其设置相邻结点的编辑属性,该属性连接两个段。请注意,由于编辑类型的不同,本方法可能影响相邻结点的位置。 /// </summary> /// <param name="Index">需要设置编辑类型的顶点。</param> /// <param name="EditingType">顶点的编辑属性。</param> public void SetEditingType(int Index, MsoEditingType EditingType) { _objaParameters = new object[2] { Index, EditingType }; _objShapeNodes.GetType().InvokeMember("SetEditingType", BindingFlags.InvokeMethod, null, _objShapeNodes, _objaParameters); }
/// <summary>在任意多边形形状中插入节点。 /// </summary> /// <param name="Index">Long 型。形状节点的编号,将在该节点后插入新节点。</param> /// <param name="SegmentType">线段类型。</param> /// <param name="EditingType">编辑的类型。</param> /// <param name="X1">如果新线段的 EditingType 为 msoEditingAuto,那么此参数就以磅为单位指定文档的左上角与新线段的终点之间的水平距离。如果新节点的 EditingType 为 msoEditingCorner,那么此参数就以磅为单位指定文档的左上角与新线段的第一个控制点之间的水平距离。</param> /// <param name="Y1">如果新线段的 EditingType 为 msoEditingAuto,则此参数就以磅为单位指定从文档左上角到新线段终点的垂直距离。如果新节点的 EditingType 属性为 msoEditingCorner,则此参数就以磅为单位指定从文档左上角到新线段第一个控制点的垂直距离。</param> /// <param name="X2">如果新线段的 EditingType 属性为 msoEditingCorner,则此参数就以磅为单位指定从文档左上角到新线段第二个控制点的水平距离。如果新线段的 EditingType 为 msoEditingAuto,则不用为此参数指定值。</param> /// <param name="Y2">如果新线段的 EditingType 为 msoEditingCorner,则此参数就以磅为单位指定从文档左上角到新线段第二个控制点的垂直距离。如果新线段的 EditingType 为 msoEditingAuto,则不用为此参数指定值。</param> /// <param name="X3">如果新线段的 EditingType 为 msoEditingCorner,则此参数就以磅为单位指定从文档的左上角到新线段终点之间的水平距离。如果新线段的 EditingType 为 msoEditingAuto,则不用为此参数指定值。</param> /// <param name="Y3">如果新线段的 EditingType 为 msoEditingCorner,则此参数就以磅为单位指定从文档左上角到新线段终点的垂直距离。如果新线段的 EditingType 为 msoEditingAuto,则不用为此参数指定值。</param> public void Insert(int Index, MsoSegmentType SegmentType, MsoEditingType EditingType, float X1, float Y1, float X2 = 0f, float Y2 = 0f, float X3 = 0f, float Y3 = 0f) { _objaParameters = new object[9] { Index, SegmentType, EditingType, X1, Y1, X2, Y2, X3, Y3 }; _objShapeNodes.GetType().InvokeMember("Insert", BindingFlags.InvokeMethod, null, _objShapeNodes, _objaParameters); }