セルの編集を禁止するには?

文書番号 : 17433     文書種別 : 使用方法     最終更新日 : 2005/04/29
文書を印刷する
対象製品
El Tabelle for .NET 3.0J
詳細
El Tabelle では、ラベル型セルやセルの Lock プロパティを使うことでセルの編集を禁止することができます。しかし、セルの値に応じて動的に編集を禁止する処理など、柔軟性が要求されるシーンではこれらの方法は不向きです。

ユーザーがセルを編集する直前にセルの値をチェックし、編集を禁止するには EnterEdit イベントを使用します。次の例では、ユーザーが A1 セルに「TEST」という文字列を入力したとき、以後 A1 セルの編集を禁止します。

[Visual Basic]
Private Sub Sheet1_EnterEdit(ByVal sender As Object, ByVal e As GrapeCity.Win.ElTabelle.EnterEditEventArgs) Handles Sheet1.EnterEdit
  'A1セルが編集される場合
  If Sheet1.ActivePosition.Expression = "A1" Then
    'A1セルの値が"TEST"の場合
    If Sheet1.ActiveCell.Value = "TEST" Then
      'セルの編集をキャンセル(禁止)する
      e.Cancel = True
    End If
  End If
End Sub

[C#]
private void sheet1_EnterEdit(object sender, GrapeCity.Win.ElTabelle.EnterEditEventArgs e)
{
  //A1セルが編集される場合
  if(sheet1.ActivePosition.Expression.ToString() == "A1")
  {
    if(sheet1.ActiveCell.Value != null)
    {
      //A1セルの値が"TEST"の場合
      if(sheet1.ActiveCell.Value.ToString() == "TEST")
      {
        //セルの編集をキャンセル(禁止)する
        e.Cancel = true;
      }
    }
  }
}


※ イベントハンドラのコードは Visual Studio .NET で生成してください。

なお、クリップボード操作は EnterEdit イベントでは制御できません。クリップボード操作を禁止するには、Sheet クラスの AllowClipboard プロパティを false に設定します。
キーワード
HowTo

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