入力値が不正の場合はセルやフォーカスの移動を許可したくないのですが方法はありますか?

文書番号 : 38974     文書種別 : 使用方法     登録日 : 2015/07/02     最終更新日 : 2015/07/02
文書を印刷する
対象製品
SPREAD for Windows Forms 8.0J
詳細
セル移動時にはLeaveCellイベントが発生し、フォーカスの移動時にはValidatingイベントが発生します。このタイミングで移動前の入力値を判断し、不正な場合には各イベントのデフォルトの動作をキャンセルします。

下記コードは、セルの値が「abc」の場合にメッセージボックスを表示し、セルの移動とフォーカスの移動をキャンセルするサンプルです。

◎サンプルコード(VB)
Private Sub FpSpread1_LeaveCell(ByVal sender As System.Object, ByVal e As FarPoint.Win.Spread.LeaveCellEventArgs) Handles FpSpread1.LeaveCell
  e.Cancel = CheckValue()
End Sub

Private Sub FpSpread1_Validating(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles FpSpread1.Validating
  e.Cancel = CheckValue()
End Sub

Private Function CheckValue() As Boolean
  If FpSpread1.ActiveSheet.ActiveCell.Value = "abc" Then
    ' セルの編集を開始します
    FpSpread1.StartCellEditing(Nothing, False)
    Return True
  End If
  Return False
End Function


◎サンプルコード(C#)
private void fpSpread1_LeaveCell(object sender, FarPoint.Win.Spread.LeaveCellEventArgs e)
{
  e.Cancel = CheckValue();
}

private void fpSpread1_Validating(object sender, CancelEventArgs e)
{
  e.Cancel = CheckValue();
}

private Boolean CheckValue()
{
  if ((string)fpSpread1.ActiveSheet.ActiveCell.Value == "abc")
  {
    // セルの編集を開始します
    fpSpread1.StartCellEditing(null, false);
    return true;
  }
  return false;
}