作成日: 2023/02/08 最終更新日: 2023/02/08
文書種別
技術情報
詳細
AddConnectorメソッドで任意の位置にコネクタシェイプを配置後、BeginConnectメソッドとEndConnectメソッドの第一引数で接続するシェイプを指定します。BeginConnectメソッドとEndConnectメソッドの第二引数では、シェイプのどの位置を接続点とするかを指定します。
また、IShapeBaseインタフェースのRerouteConnections メソッドでは、シェイプ間を結ぶコネクタの経路が最短になるようにコネクタを再接続します。 その際、シェイプの接続点が最短経路と異なる場合には接続点が変更されます。
また、IShapeBaseインタフェースのRerouteConnections メソッドでは、シェイプ間を結ぶコネクタの経路が最短になるようにコネクタを再接続します。 その際、シェイプの接続点が最短経路と異なる場合には接続点が変更されます。
◎サンプルコード(VB)
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' 拡張シェイプエンジンを有効にする
FpSpread1.Features.EnhancedShapeEngine = True
' シェイプ1
Dim rect1 = FpSpread1.AsWorkbook().ActiveSheet.Shapes.AddShapeToCell(AutoShapeType.Rectangle, 1, 1, 100, 50)
rect1.TextEffect.Text = "シェイプ1"
' シェイプ2
Dim rect2 = FpSpread1.AsWorkbook().ActiveSheet.Shapes.AddShapeToCell(AutoShapeType.Rectangle, 5, 1, 100, 50)
rect2.TextEffect.Text = "シェイプ2"
' シェイプ3
Dim rect3 = FpSpread1.AsWorkbook().ActiveSheet.Shapes.AddShapeToCell(AutoShapeType.Rectangle, 3, 3, 100, 50)
rect3.TextEffect.Text = "シェイプ3"
' コネクタシェイプ1(シェイプ1とシェイプ2を結ぶ)
Dim cn1 = FpSpread1.AsWorkbook().ActiveSheet.Shapes.AddConnector(ConnectorType.Straight, 1, 1, 1, 1)
cn1.ConnectorFormat.BeginConnect(rect1, 2)
cn1.ConnectorFormat.EndConnect(rect2, 0)
cn1.Line.ForeColor.Color = GrapeCity.Core.SchemeColor.CreateArgbColor(Color.Green.ToArgb())
' コネクタシェイプ2(シェイプ1とシェイプ3を結ぶ)
Dim cn2 = FpSpread1.AsWorkbook().ActiveSheet.Shapes.AddConnector(ConnectorType.Straight, 1, 1, 1, 1)
cn2.ConnectorFormat.BeginConnect(rect1, 3)
cn2.ConnectorFormat.EndConnect(rect3, 0)
cn2.Line.ForeColor.Color = GrapeCity.Core.SchemeColor.CreateArgbColor(Color.Green.ToArgb())
' コネクタシェイプ3(シェイプ3とシェイプ2を結んだ後、RerouteConnectionsメソッドで最短経路で結びなおす)
Dim cn3 = FpSpread1.AsWorkbook().ActiveSheet.Shapes.AddConnector(ConnectorType.Straight, 1, 1, 1, 1)
cn3.ConnectorFormat.BeginConnect(rect3, 0)
cn3.ConnectorFormat.EndConnect(rect2, 0)
cn3.RerouteConnections()
cn3.Line.ForeColor.Color = GrapeCity.Core.SchemeColor.CreateArgbColor(Color.Red.ToArgb())
End Sub
◎サンプルコード(C#)
private void Form1_Load(object sender, EventArgs e)
{
// 拡張シェイプエンジンを有効にする
fpSpread1.Features.EnhancedShapeEngine = true;
// シェイプ1
var rect1 = fpSpread1.AsWorkbook().ActiveSheet.Shapes.AddShapeToCell(AutoShapeType.Rectangle, 1, 1, 100, 50);
rect1.TextEffect.Text = "シェイプ1";
// シェイプ2
var rect2 = fpSpread1.AsWorkbook().ActiveSheet.Shapes.AddShapeToCell(AutoShapeType.Rectangle, 5, 1, 100, 50);
rect2.TextEffect.Text = "シェイプ2";
// シェイプ3
var rect3 = fpSpread1.AsWorkbook().ActiveSheet.Shapes.AddShapeToCell(AutoShapeType.Rectangle, 3, 3, 100, 50);
rect3.TextEffect.Text = "シェイプ3";
// コネクタシェイプ1(シェイプ1とシェイプ2を結ぶ)
var cn1 = fpSpread1.AsWorkbook().ActiveSheet.Shapes.AddConnector(ConnectorType.Straight, 1, 1, 1, 1);
cn1.ConnectorFormat.BeginConnect(rect1, 2);
cn1.ConnectorFormat.EndConnect(rect2, 0);
cn1.Line.ForeColor.Color = GrapeCity.Core.SchemeColor.CreateArgbColor(Color.Green.ToArgb());
// コネクタシェイプ2(シェイプ1とシェイプ3を結ぶ)
var cn2 = fpSpread1.AsWorkbook().ActiveSheet.Shapes.AddConnector(ConnectorType.Straight, 1, 1, 1, 1);
cn2.ConnectorFormat.BeginConnect(rect1, 3);
cn2.ConnectorFormat.EndConnect(rect3, 0);
cn2.Line.ForeColor.Color = GrapeCity.Core.SchemeColor.CreateArgbColor(Color.Green.ToArgb());
// コネクタシェイプ3(シェイプ3とシェイプ2を結んだ後、RerouteConnectionsメソッドで最短経路で結びなおす)
var cn3 = fpSpread1.AsWorkbook().ActiveSheet.Shapes.AddConnector(ConnectorType.Straight, 1, 1, 1, 1);
cn3.ConnectorFormat.BeginConnect(rect3, 0);
cn3.ConnectorFormat.EndConnect(rect2, 0);
cn3.RerouteConnections();
cn3.Line.ForeColor.Color = GrapeCity.Core.SchemeColor.CreateArgbColor(Color.Red.ToArgb());
}
<実行イメージ>