MESCIUS SPREAD for Windows Forms 17.0J サンプルコード集
コードからのクリップボード処理

シート上のシェイプオブジェクトに対してはショートカットキー(Ctrl+Cなど)による通常のクリップボード処理を行えますが、SheetViewクラスの各メソッド呼び出しにより、コードからも同等の機能を実装することが可能です。

【実行例】

クリップボード処理

  • 当メソッド呼び出し時には、あらかじめ対象となるシェイプオブジェクトをマウスクリックによって選択しておく必要があります。
  • 任意のシェイプが選択されている(フォーカスが設定されている)状態でのコピー(Ctrl+C)を行った場合、フォーカスがセルに移動してしまうとシェイプオブジェクトのペースト(Ctrl+V)は実行されません。よって、シェイプオブジェクトのコピー&ペースト時には対象シェイプを選択したままの状態にしておく必要があります。

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

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

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

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

   //Xシェイプを追加します
   FarPoint.Win.Spread.DrawingSpace.XShape xs = new FarPoint.Win.Spread.DrawingSpace.XShape();
   xs.Name = "x-01";
   xs.BackColor = Color.Red;
   xs.SetBounds(30, 10, 100, 100);

   fpSpread1.ActiveSheet.AddShape(xs);

 }

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

   //アクティブなシェイプオブジェクトをコピーします
   fpSpread1.ActiveSheet.ClipboardCopyShape();

 }

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

   //アクティブなシェイプオブジェクトをカットします
   fpSpread1.ActiveSheet.ClipboardCutShape();

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

   //アクティブなシェイプオブジェクトをペーストします
   fpSpread1.ActiveSheet.ClipboardPasteShape();

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

   'Xシェイプを追加します
   Dim xs As New FarPoint.Win.Spread.DrawingSpace.XShape
   xs.Name = "x-01"
   xs.BackColor = Color.Red
   xs.SetBounds(30, 10, 100, 100)

   FpSpread1.ActiveSheet.AddShape(xs)

 End Sub

 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

   'アクティブなシェイプオブジェクトをコピーします
   FpSpread1.ActiveSheet.ClipboardCopyShape()

 End Sub

 Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

   'アクティブなシェイプオブジェクトをカットします
   FpSpread1.ActiveSheet.ClipboardCutShape()

 End Sub

 Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

   'アクティブなシェイプオブジェクトをペーストします
   FpSpread1.ActiveSheet.ClipboardPasteShape()

 End Sub

 

 


© MESCIUS inc. All rights reserved.