MESCIUS SPREAD for Windows Forms 17.0J サンプルコード集
独自のシェイプオブジェクトを作成する

Customシェイプクラスの利用により、.NET Frameworkより提供されているSystem.Drawing名前空間の各機能を用いた独自のシェイプオブジェクトを作成することができます。また、作成されたオブジェクトはSPREADより提供されている各シェイプと同様に制御することが可能です。

【実行例】

カスタムシェイプ

  • System.Drawing名前空間の詳細など、一般的な描画方法に関してはMSDNライブラリをご参照ください
  • シート上に複数のシェイプオブジェクトが存在する場合でも、選択可能なオブジェクトは常に一つだけとなります。(複数同時選択不可)
  • シェイプオブジェクトを処理する各関数(AddShapeメソッド:追加、GetShapeメソッド:取得、ClearShapesメソッド:全消去、RemoveShapeメソッド:削除)は SheetViewクラスメンバのみサポートしていますので、実装時には当クラスメンバを利用してください。 FarPoint.Win.Spread.DrawingSpace.SpreadShapesContainerクラス(内部使用クラス)からも同等の機能が提供されていますが、当クラスメンバであるこれらの各メソッドは内部使用を目的としているため、動作についてはサポートしていません。

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

   //グラフィックを作成します
   System.Drawing.Point[] pts = {new System.Drawing.Point(25, 0),
               new System.Drawing.Point(0, 50),
               new System.Drawing.Point(20, 50),
               new System.Drawing.Point(5, 100),
               new System.Drawing.Point(40, 40),
               new System.Drawing.Point(20, 40),
               new System.Drawing.Point(40, 0),
               new System.Drawing.Point(25, 0)};

   System.Drawing.Drawing2D.GraphicsPath gpath = new System.Drawing.Drawing2D.GraphicsPath();
   gpath.AddPolygon(pts);

   //カスタムシェイプオブジェクトを作成します
   FarPoint.Win.Spread.DrawingSpace.CustomShape pso = new FarPoint.Win.Spread.DrawingSpace.CustomShape();
   //作成したグラフィックを設定します
   pso.Shape = gpath;
   //各属性を設定します
   pso.SetBounds(120, 10, 120, 120);
   pso.BackColor = Color.Red;
   pso.AlphaBlendBackColor = 90;
   pso.ShadowColor = Color.Blue;
   pso.AlphaBlendShadowColor = 90;
   pso.ShadowDirection = FarPoint.Win.Spread.DrawingSpace.ShadowDirection.Right;
   pso.ShadowOffset = 5;

   fpSpread1.ActiveSheet.AddShape(pso);

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

   'グラフィックを作成します
   Dim pts As System.Drawing.Point() = {New System.Drawing.Point(25, 0), _
               New System.Drawing.Point(0, 50), _
               New System.Drawing.Point(20, 50), _
               New System.Drawing.Point(5, 100), _
               New System.Drawing.Point(40, 40), _
               New System.Drawing.Point(20, 40), _
               New System.Drawing.Point(40, 0), _
               New System.Drawing.Point(25, 0)}

   Dim gpath As System.Drawing.Drawing2D.GraphicsPath = New System.Drawing.Drawing2D.GraphicsPath
   gpath.AddPolygon(pts)

   'カスタムシェイプオブジェクトを作成します
   Dim pso As New FarPoint.Win.Spread.DrawingSpace.CustomShape
   '作成したグラフィックを設定します
   pso.Shape = gpath
   '各属性を設定します
   pso.SetBounds(120, 10, 120, 120)
   pso.BackColor = Color.Red
   pso.AlphaBlendBackColor = 90
   pso.ShadowColor = Color.Blue
   pso.AlphaBlendShadowColor = 90
   pso.ShadowDirection = FarPoint.Win.Spread.DrawingSpace.ShadowDirection.Right
   pso.ShadowOffset = 5

   FpSpread1.ActiveSheet.AddShape(pso)

 End Sub 

 

 


© MESCIUS inc. All rights reserved.