セルの編集を禁止するには?
対象製品
El Tabelle for .NET 3.0J
詳細
El Tabelle では、ラベル型セルやセルの Lock プロパティを使うことでセルの編集を禁止することができます。しかし、セルの値に応じて動的に編集を禁止する処理など、柔軟性が要求されるシーンではこれらの方法は不向きです。
ユーザーがセルを編集する直前にセルの値をチェックし、編集を禁止するには EnterEdit イベントを使用します。次の例では、ユーザーが A1 セルに「TEST」という文字列を入力したとき、以後 A1 セルの編集を禁止します。
[Visual Basic]
[C#]
※ イベントハンドラのコードは Visual Studio .NET で生成してください。
なお、クリップボード操作は EnterEdit イベントでは制御できません。クリップボード操作を禁止するには、Sheet クラスの AllowClipboard プロパティを false に設定します。
ユーザーがセルを編集する直前にセルの値をチェックし、編集を禁止するには 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
'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;
}
}
}
}
{
//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