MESCIUS SPREAD for Windows Forms 17.0J サンプルコード集
シェイプを追加する

SheetViewクラスのAddShapeメソッド呼び出しにより、シート上には様々なシェイプオブジェクトを配置させることができます。

【実行例】

シェイプ

  • シート上に複数のシェイプオブジェクトが存在する場合でも、選択可能なオブジェクトは常に一つだけとなります。(複数同時選択不可)
  • 任意のシェイプが選択されている(フォーカスが設定されている)状態でのコピー(Ctrl+C)を行った場合、フォーカスがセルに移動してしまうとシェイプオブジェクトのペースト(Ctrl+V)は実行されません。よって、シェイプオブジェクトのコピー&ペースト時には対象シェイプを選択したままの状態にしておく必要があります。

    <コピー&ペーストの手順>

    シェイプのコピ&ペースト

  • シェイプオブジェクトを処理する各関数(AddShapeメソッド:追加、GetShapeメソッド:取得、ClearShapesメソッド:全消去、RemoveShapeメソッド:削除)は SheetViewクラスメンバのみサポートしていますので、実装時には当クラスメンバを利用してください。 FarPoint.Win.Spread.DrawingSpace.SpreadShapesContainerクラス(内部使用クラス)からも同等の機能が提供されていますが、当クラスメンバであるこれらの各メソッドは内部使用を目的としているため、動作についてはサポートしていません。

 private void Form1_Load(object sender, System.EventArgs e)
 {

   //Arrowシェイプを追加します
   FarPoint.Win.Spread.DrawingSpace.ArrowShape arrow = new FarPoint.Win.Spread.DrawingSpace.ArrowShape();
   arrow.Name = "Arrow-01";
   arrow.BackColor = Color.Red;
   arrow.AlphaBlendBackColor = 90;
   arrow.ShadowColor = Color.Blue;
   arrow.AlphaBlendShadowColor = 90;
   arrow.ShadowDirection = FarPoint.Win.Spread.DrawingSpace.ShadowDirection.BottomRight;
   arrow.SetBounds(10, 10, 90, 60);
   fpSpread1.ActiveSheet.AddShape(arrow);

   //MultiSideシェイプを追加します
   FarPoint.Win.Spread.DrawingSpace.MultiSideShape ms = new FarPoint.Win.Spread.DrawingSpace.MultiSideShape();
   ms.Sides = 5;
   ms.Name = "MultiSide-01";
   ms.Text = "Multi";
   ms.Font = new Font("Arial", 16);
   ms.CanRenderText = true;
   ms.MarginLeft = 0;
   //グラデーション設定
   FarPoint.Win.Spread.DrawingSpace.PSGradient psg = new FarPoint.Win.Spread.DrawingSpace.PSGradient();
   psg.Style = FarPoint.Win.Spread.DrawingSpace.GradientStyle.LinearTopDown;
   psg.Sections[0].Color = Color.Blue;
   psg.Sections[0].AlphaBlend = 128;
   psg.Sections[1].Color = Color.LightCyan;
   psg.Sections[1].AlphaBlend = 255;
   ms.Gradient = psg;
   ms.SetBounds(100, 60, 100, 100);
   fpSpread1.ActiveSheet.AddShape(ms);

   //UniversalNoシェイプを追加します
   FarPoint.Win.Spread.DrawingSpace.UniversalNoShape un = new FarPoint.Win.Spread.DrawingSpace.UniversalNoShape();
   un.Name = "UniversalNo-01";
   un.BackColor = Color.Red;
   un.ShadowColor = Color.Blue;
   un.SetBounds(230, 30, 100, 100);
   fpSpread1.ActiveSheet.AddShape(un);

 } 
 Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load

   'Arrowシェイプを追加します
   Dim arrow As New FarPoint.Win.Spread.DrawingSpace.ArrowShape
   arrow.Name = "Arrow-01"
   arrow.BackColor = Color.Red
   arrow.AlphaBlendBackColor = 90
   arrow.ShadowColor = Color.Blue
   arrow.AlphaBlendShadowColor = 90
   arrow.ShadowDirection = FarPoint.Win.Spread.DrawingSpace.ShadowDirection.BottomRight
   arrow.SetBounds(10, 10, 90, 60)
   FpSpread1.ActiveSheet.AddShape(arrow)

   'MultiSideシェイプを追加します
   Dim ms As New FarPoint.Win.Spread.DrawingSpace.MultiSideShape
   ms.Sides = 5
   ms.Name = "MultiSide-01"
   ms.Text = "Multi"
   ms.Font = New Font("Arial", 16)
   ms.CanRenderText = True
   ms.MarginLeft = 0
   'グラデーション設定
   Dim psg As New FarPoint.Win.Spread.DrawingSpace.PSGradient
   psg.Style = FarPoint.Win.Spread.DrawingSpace.GradientStyle.LinearTopDown
   psg.Sections(0).Color = Color.Blue
   psg.Sections(0).AlphaBlend = 128
   psg.Sections(1).Color = Color.LightCyan
   psg.Sections(1).AlphaBlend = 255
   ms.Gradient = psg
   ms.SetBounds(100, 60, 100, 100)
   FpSpread1.ActiveSheet.AddShape(ms)

   'UniversalNoシェイプを追加します
   Dim un As New FarPoint.Win.Spread.DrawingSpace.UniversalNoShape
   un.Name = "UniversalNo-01"
   un.BackColor = Color.Red
   un.ShadowColor = Color.Blue
   un.SetBounds(230, 30, 100, 100)
   FpSpread1.ActiveSheet.AddShape(un)

 End Sub 

 

 


© MESCIUS inc. All rights reserved.