【スクリプト】SPREAD上で右クリックした時に独自のコンテキストメニューを表示したい
対象製品
SPREAD for .NET 2.5J Web Forms Edition
詳細
アプリケーション側で独自のコンテキストメニューを表示する方法の1つとして、Internet Explorer上で右クリックした際に発生するoncontextmenuイベントを捕捉し、デフォルトの動作をキャンセル、独自のメニューを表示する方法があります。
下記ではSPREAD上での右クリックイベントを捕捉、デフォルト動作をキャンセルし、コピー、ペースト処理を実行するメニューを表示します。
【VB サンプルコード】
下記では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>
:
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