【スクリプト】SPREAD上で右クリックした時に独自のコンテキストメニューを表示したい

文書番号 : 21839     文書種別 : 使用方法     最終更新日 : 2006/06/23
文書を印刷する
対象製品
SPREAD for .NET 2.5J Web Forms Edition
詳細
アプリケーション側で独自のコンテキストメニューを表示する方法の1つとして、Internet Explorer上で右クリックした際に発生するoncontextmenuイベントを捕捉し、デフォルトの動作をキャンセル、独自のメニューを表示する方法があります。

下記ではSPREAD上での右クリックイベントを捕捉、デフォルト動作をキャンセルし、コピー、ペースト処理を実行するメニューを表示します。

【VB サンプルコード】
-------------------------------
Webフォームクラス
-------------------------------
  Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    If IsPostBack Then
      Return
    End If

    FpSpread1.Attributes.Add("oncontextmenu", "ShowMyMenu();return false;")
    FpSpread1.ActiveSheetView.Cells(1, 1).Value = "Copy Me!!"
  End Sub
------------------------------
Webフォーム
------------------------------
   <style type="text/css">
     .mymenu { FONT-SIZE: x-small; Z-INDEX: 1000; VISIBILITY: hidden; WIDTH: 100px; POSITION: absolute; BACKGROUND-COLOR: beige }
   </style>
   <script language="javascript">
     function ShowMyMenu(){
        var menu=document.all("mymenu");
        menu.style.posLeft=event.x;
        menu.style.posTop=event.y;
        menu.style.visibility="visible";
     }
     function mover(){
        var td=event.srcElement;
        td.bgColor="gray";
        td.style.cursor="hand";
     }
     function mout(){
        var td=event.srcElement;
        td.bgColor="";
        td.style.cursor="";
     }
     function mclick(){
        var menu=document.all("mymenu");
        menu.style.visibility="hidden";
        var ss=document.all("FpSpread1");
       
        var comm=event.srcElement.command;       
        if(comm=="copy"){
          ss.Copy();
        }
        else if(comm=="paste"){
          ss.Paste();
        }
     }
   </script>

   <body MS_POSITIONING="GridLayout">
   <table id="mymenu" class="mymenu" border="1" cellpadding="3" cellspacing="0">
    <tr>
     <td onmouseover="mover()" onmouseout="mout()" onclick="mclick()" command="copy">Copy
     </td>
    </tr>
    <tr>
     <td onmouseover="mover()" onmouseout="mout()" onclick="mclick()" command="paste">Paste
     </td>
    </tr>
   </table>
             :
キーワード
外観 クライアント側スクリプト

この文書は、以前は次のFAQ IDで公開されていました : 9163