GrapeCity SPREAD for Windows Forms 12.0J サンプルコード集
独自のコンテキストメニューを設定する

.NET Frameworkより提供されているContextMenuクラス(またはContextMenuStripクラス)を利用することで、シート上でのマウス右クリックによるコンテキストメニュー表示機能を実現させることができます。

【実行例】

コンテキストメニュー

  • 編集中セルにて表示されるコンテキストメニュー(元に戻す/切り取り/コピーなど)はOSが提供するエディットクラスに依存しますので、これらの内容をSPREAD側でカスタマイズすることはできません。
    標準コンテキストメニュー

  • 編集中セルでも独自のコンテキストメニューを表示させたい場合はEditModeOnイベントを実装し、編集中セルにて利用されるエディタコントロール(EditingControl)のContextMenuプロパティを設定します。
    -----------------------------------
     Dim cm As New ContextMenu

     Private Sub FpSpread1_EditModeOn(ByVal sender As Object, ByVal e As System.EventArgs) Handles FpSpread1.EditModeOn
       'セルの編集開始時、入力用エディタコントロールのContextMenuを設定します
       FpSpread1.EditingControl.ContextMenu = cm
     End Sub

    編集中セルでのコンテキストメニュー

  • 編集中セルにて表示されるコンテキストメニューを非表示にする場合は、上記同様の手順でダミーのContextMenuを設定します。
    -----------------------------------
     Private Sub FpSpread1_EditModeOn(ByVal sender As Object, ByVal e As System.EventArgs) Handles FpSpread1.EditModeOn
       FpSpread1.EditingControl.ContextMenu = New ContextMenu
     End Sub

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

  //コンテキストメニューを作成します
  ContextMenu cm = new ContextMenu();
  cm.MenuItems.Add("処理1", new System.EventHandler(this.a1));
  cm.MenuItems.Add("処理2", new System.EventHandler(this.a2));

  //SPREADに設定します
  fpSpread1.ContextMenu = cm;

 }

 private void a1(object sender, System.EventArgs e)
 {
  //処理1
 }

 private void a2(object sender, System.EventArgs e)
 {
  //処理2
 }
 Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load

  'コンテキストメニューを作成します
  Dim cm As New ContextMenu
  cm.MenuItems.Add("処理1", New System.EventHandler(AddressOf Method1))
  cm.MenuItems.Add("処理2", New System.EventHandler(AddressOf Method2))

  'SPREADに設定します
  FpSpread1.ContextMenu = cm

 End Sub

 Private Sub Method1(ByVal sender As Object, ByVal e As System.EventArgs)
  '処理1
 End Sub

 Private Sub Method2(ByVal sender As Object, ByVal e As System.EventArgs)
  '処理2
 End Sub

 

 


Copyright © 2004 GrapeCity inc.