【スクリプト】 SPREADからフォーカスを外したい

文書番号 : 21827     文書種別 : 使用方法     最終更新日 : 2006/06/23
文書を印刷する
対象製品
SPREAD for .NET 2.5J Web Forms Edition
詳細
SPREADでは[Tab]キーでセル上のフォーカスを列方向に移動します。
そのため一度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>
キーワード
クライアント側スクリプト

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