【セル型全般】 入力値が不正の場合はセル移動を許可したくないのですが方法はありますか?
対象製品
SPREAD for .NET Windows Forms Edition
詳細
セル移動時にはLeaveCellイベントが発生します。このタイミングで移動前の入力値を判断し、不正な場合にはLeaveCellEventArgsクラスである引数eのCancelプロパティを設定することで、セルの移動をキャンセルします。
なお、LeaveCellEventArgsクラスの詳細については製品ヘルプをご参照ください。
◎サンプルコード(VB)
◎サンプルコード(C#)
なお、LeaveCellEventArgsクラスの詳細については製品ヘルプをご参照ください。
◎サンプルコード(VB)
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
FpSpread1.ActiveSheet.RowCount = 2
FpSpread1.ActiveSheet.ColumnCount = 2
Dim t As New FarPoint.Win.Spread.CellType.TextCellType
FpSpread1.ActiveSheet.Cells(0, 0, FpSpread1.ActiveSheet.RowCount - 1, FpSpread1.ActiveSheet.ColumnCount - 1).CellType = t
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.Row, e.Column).Text <> "aaa" Then
e.Cancel = True
MessageBox.Show("入力値が不正です。")
End If
End Sub
FpSpread1.ActiveSheet.RowCount = 2
FpSpread1.ActiveSheet.ColumnCount = 2
Dim t As New FarPoint.Win.Spread.CellType.TextCellType
FpSpread1.ActiveSheet.Cells(0, 0, FpSpread1.ActiveSheet.RowCount - 1, FpSpread1.ActiveSheet.ColumnCount - 1).CellType = t
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.Row, e.Column).Text <> "aaa" Then
e.Cancel = True
MessageBox.Show("入力値が不正です。")
End If
End Sub
◎サンプルコード(C#)
private void Form1_Load(object sender, System.EventArgs e)
{
fpSpread1.ActiveSheet.RowCount = 2;
fpSpread1.ActiveSheet.ColumnCount = 2;
FarPoint.Win.Spread.CellType.TextCellType t = new FarPoint.Win.Spread.CellType.TextCellType();
fpSpread1.ActiveSheet.Cells[0, 0, fpSpread1.ActiveSheet.RowCount - 1,fpSpread1.ActiveSheet.ColumnCount - 1].CellType = t;
}
private void fpSpread1_LeaveCell(object sender, FarPoint.Win.Spread.LeaveCellEventArgs e)
{
if (fpSpread1.ActiveSheet.Cells[e.Row,e.Column].Text != "aaa")
{
e.Cancel = true;
MessageBox.Show("入力値が不正です。");
}
}
{
fpSpread1.ActiveSheet.RowCount = 2;
fpSpread1.ActiveSheet.ColumnCount = 2;
FarPoint.Win.Spread.CellType.TextCellType t = new FarPoint.Win.Spread.CellType.TextCellType();
fpSpread1.ActiveSheet.Cells[0, 0, fpSpread1.ActiveSheet.RowCount - 1,fpSpread1.ActiveSheet.ColumnCount - 1].CellType = t;
}
private void fpSpread1_LeaveCell(object sender, FarPoint.Win.Spread.LeaveCellEventArgs e)
{
if (fpSpread1.ActiveSheet.Cells[e.Row,e.Column].Text != "aaa")
{
e.Cancel = true;
MessageBox.Show("入力値が不正です。");
}
}
関連情報
- 【セル型全般】 ロックされたセルを読み飛ばす方法
- 【セル型全般】 セルの編集後にデータが変更されたかどうかを取得する方法はありますか?
- 【数値型セル】 設定範囲外の値が入力されたタイミングを取得する方法
- 【セル型全般】 アクティブセル移動のタイミングを取得したい
キーワード
機能・仕様 HowTo 問題
この文書は、以前は次のFAQ IDで公開されていました : 6100