【セル型全般】 ロックされたセルを読み飛ばす方法

文書番号 : 15615     文書種別 : 使用方法     最終更新日 : 2004/10/15
文書を印刷する
対象製品
SPREAD for .NET Windows Forms Edition
詳細
常時入力モード(EditModePermanent = True)の場合、[TAB]キーおよび[矢印]キーでのセル移動によって、ロックされているセルは自動的に読み飛ばされます。しかし、通常モードの場合はロックされているセルに対してもフォーカスが移動します。

通常モードでもロックされたセルを読み飛ばしたい場合は、セルが移動するタイミングで発生するLeaveCellイベントを利用して制御することが出来ます。

◎サンプルコード(VB)
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
  FpSpread1.ActiveSheet.RowCount = 3
  FpSpread1.ActiveSheet.ColumnCount = 3
  FpSpread1.ActiveSheet.LockBackColor = Color.Red
  FpSpread1.ActiveSheet.Cells(1, 1).Locked = True
End Sub

Private Sub FpSpread1_LeaveCell(ByVal sender As Object, ByVal e As FarPoint.Win.Spread.LeaveCellEventArgs) Handles FpSpread1.LeaveCell
  If FpSpread1.ActiveSheet.Cells(e.NewRow, e.NewColumn).Locked Then
    If e.Row = e.NewRow Then
      If e.Column < e.NewColumn Then
        e.NewColumn = e.NewColumn + 1
      Else
        e.NewColumn = e.NewColumn - 1
      End If
    Else
      If e.Row < e.NewRow Then
        e.NewRow = e.NewRow + 1
      Else
        e.NewRow = e.NewRow - 1
      End If
    End If
  End If
End Sub


◎サンプルコード(C#)
private void Form1_Load(object sender, System.EventArgs e)
{
  fpSpread1.ActiveSheet.RowCount = 3;
  fpSpread1.ActiveSheet.ColumnCount = 3;
  fpSpread1.ActiveSheet.LockBackColor = Color.Red;
  fpSpread1.ActiveSheet.Cells[1, 1].Locked = true;
}

private void fpSpread1_LeaveCell(object sender, FarPoint.Win.Spread.LeaveCellEventArgs e)
{
  if (fpSpread1.ActiveSheet.Cells[e.NewRow, e.NewColumn].Locked)
    if (e.Row == e.NewRow)
      if (e.Column < e.NewColumn)
        e.NewColumn = e.NewColumn + 1;
      else
        e.NewColumn = e.NewColumn - 1;
    else
      if (e.Row < e.NewRow)
        e.NewRow = e.NewRow + 1;
      else
        e.NewRow = e.NewRow - 1;
}
関連情報
キーワード
機能・仕様 HowTo セル型

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