【スクリプト】 SPREADからフォーカスを外したい
対象製品
SPREAD for .NET 2.5J Web Forms Edition
詳細
SPREADでは[Tab]キーでセル上のフォーカスを列方向に移動します。
そのため一度SPREADにフォーカスが移動すると以降は[Tab]キーにてセルのフォーカスを移動し、SPREAD以外の他のコントロールにはフォーカスが移動しません。
[Tab]キーでセル上のフォーカスを列方向に移動する動作は、コントロールのProcessTabプロパティをFalseに設定することでキャンセルできます。
【VB サンプルコード】
【C# サンプルコード】
また、[Tab]キーでセル上のフォーカスを列方向に移動する動作を有効にしたまま、SPREADからフォーカスを移動させたい場合、クライアント側スクリプトを使用してSPREADからフォーカスを移動することが可能です。
下記はSPREADからフォーカスを移動するクライアント側スクリプトです。
下記のコードはWebフォームにSPREADとTextBoxを配置した状態で実行して下さい。[Tab]キーでセルを一巡するとSPREADからフォーカスを外し、TextBoxにフォーカスを移動します。
【JavaScript サンプルコード】
そのため一度SPREADにフォーカスが移動すると以降は[Tab]キーにてセルのフォーカスを移動し、SPREAD以外の他のコントロールにはフォーカスが移動しません。
[Tab]キーでセル上のフォーカスを列方向に移動する動作は、コントロールのProcessTabプロパティをFalseに設定することでキャンセルできます。
【VB サンプルコード】
FpSpread1.ProcessTab = False
【C# サンプルコード】
FpSpread1.ProcessTab = false;
また、[Tab]キーでセル上のフォーカスを列方向に移動する動作を有効にしたまま、SPREADからフォーカスを移動させたい場合、クライアント側スクリプトを使用してSPREADからフォーカスを移動することが可能です。
下記はSPREADからフォーカスを移動するクライアント側スクリプトです。
下記のコードはWebフォームにSPREADとTextBoxを配置した状態で実行して下さい。[Tab]キーでセルを一巡するとSPREADからフォーカスを外し、TextBoxにフォーカスを移動します。
【JavaScript サンプルコード】
<script language="javascript">
var spread;
var isLastCell=false;
function window.onload()
{
spread=document.all("FpSpread1");
if(spread!=null)
{
spread.onkeyup=goToNextCell;
spread.onActiveCellChanged=checkCell;
}
}
function checkCell()
{
if(event.Row+1==spread.GetRowCount() && event.Col+1==spread.GetColCount())
{
isLastCell=true;
}
}
function goToNextCell()
{
if(event.keyCode!=9)
{
return;
}
var row=spread.ActiveRow;
var col=spread.ActiveCol;
if((row==0 && col==0) && isLastCell)
{
isLastCell=false;
var tx=document.all("TextBox2");
tx.focus();
}
}
</script>
var spread;
var isLastCell=false;
function window.onload()
{
spread=document.all("FpSpread1");
if(spread!=null)
{
spread.onkeyup=goToNextCell;
spread.onActiveCellChanged=checkCell;
}
}
function checkCell()
{
if(event.Row+1==spread.GetRowCount() && event.Col+1==spread.GetColCount())
{
isLastCell=true;
}
}
function goToNextCell()
{
if(event.keyCode!=9)
{
return;
}
var row=spread.ActiveRow;
var col=spread.ActiveCol;
if((row==0 && col==0) && isLastCell)
{
isLastCell=false;
var tx=document.all("TextBox2");
tx.focus();
}
}
</script>
キーワード
クライアント側スクリプト
この文書は、以前は次のFAQ IDで公開されていました : 9151