【セル型全般】 ロックされたセルを読み飛ばす方法
対象製品
SPREAD for .NET Windows Forms Edition
詳細
常時入力モード(EditModePermanent = True)の場合、[TAB]キーおよび[矢印]キーでのセル移動によって、ロックされているセルは自動的に読み飛ばされます。しかし、通常モードの場合はロックされているセルに対してもフォーカスが移動します。
通常モードでもロックされたセルを読み飛ばしたい場合は、セルが移動するタイミングで発生するLeaveCellイベントを利用して制御することが出来ます。
◎サンプルコード(VB)
◎サンプルコード(C#)
通常モードでもロックされたセルを読み飛ばしたい場合は、セルが移動するタイミングで発生する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
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;
}
{
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;
}
関連情報
- 【セル型全般】 入力値が不正の場合はセル移動を許可したくないのですが方法はありますか?
- 【セル型全般】 列全体のLockedプロパティを「True」に設定しましたが、列上のセル単位でのLockedプロパティは「False」になっています
- 【セル型全般】 アクティブセル移動のタイミングを取得したい
キーワード
機能・仕様 HowTo セル型
この文書は、以前は次のFAQ IDで公開されていました : 5896