【セル型全般】 入力値が不正の場合はセル移動を許可したくないのですが方法はありますか?

文書番号 : 16040     文書種別 : 使用方法     最終更新日 : 2004/12/02
文書を印刷する
対象製品
SPREAD for .NET Windows Forms Edition
詳細
セル移動時にはLeaveCellイベントが発生します。このタイミングで移動前の入力値を判断し、不正な場合にはLeaveCellEventArgsクラスである引数eのCancelプロパティを設定することで、セルの移動をキャンセルします。

なお、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


◎サンプルコード(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("入力値が不正です。");
    }
  }
関連情報
キーワード
機能・仕様 HowTo 問題

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