[ELTB03207]ボタン型セルやラベル型セルのキャプションを消去できる場合がある

文書番号 : 15969     文書種別 : 制限事項     最終更新日 : 2004/11/26
文書を印刷する
対象製品
El Tabelle for .NET 2.0J
発生環境
この現象はすべてのアセンブリで発生します。
詳細
ボタン型セルやラベル型セルにおいて、セルの値(Cell.Value)をキャプションとして使用しているとき、[Del] キーの入力によってこれらのセルのキャプションを消去できてしまいます。

[Visual Basic]
Imports GrapeCity.Win.ElTabelle.Editors

Dim objButtonEditor As New ButtonEditor(Nothing)
Sheet1(0, 0).Value = "Button"
Sheet1(0, 0).Editor = objButtonEditor
Dim objLabelEditor As New LabelEditor
Sheet1(0, 1).Value = "Label"
Sheet1(0, 1).Editor = objLabelEditor

[C#]
using GrapeCity.Win.ElTabelle.Editors;

ButtonEditor objButtonEditor = new ButtonEditor(null);
sheet1[0, 0].Value = "Button";
sheet1[0, 0].Editor = objButtonEditor;
LabelEditor objLabelEditor = new LabelEditor();
sheet1[0, 1].Value = "Label";
sheet1[0, 1].Editor = objLabelEditor;
回避方法
この現象は製品の仕様によるものです。

次のいずれかの操作を行うことで現象を回避できます。

・ボタン型セルとラベル型セルの Text プロパティを使用する。(ButtonEditor.Text, LabelEditor.Text)

・ボタン型セルとラベル型セルで [Del] キーの入力を無効にする

[Visual Basic]
Private Sub Sheet1_KeyDown(ByVal sender As Object, _
  ByVal e As System.Windows.Forms.KeyEventArgs) Handles Sheet1.KeyDown
  If e.KeyValue = Keys.Delete Then
    'Delキーの場合
    If TypeOf Sheet1.ActiveCell.Editor Is LabelEditor Then
      'ラベル型セルの場合、キー入力を無効にする
      e.Handled = True
    ElseIf TypeOf Sheet1.ActiveCell.Editor Is ButtonEditor Then
      'ボタン型セルの場合、キー入力を無効にする
      e.Handled = True
    End If
  End If
End Sub

[C#]
private void sheet1_KeyDown(object sender,
  System.Windows.Forms.KeyEventArgs e)
{
  if(e.KeyValue.Equals((int)Keys.Delete) == true)
  {
    if((sheet1.ActiveCell.Editor as LabelEditor) != null)
    {
      //ラベル型セルの場合、キー入力を無効にする
      e.Handled = true;
    }
    else if((sheet1.ActiveCell.Editor as ButtonEditor) != null)
    {
      //ボタン型セルの場合、キー入力を無効にする
      e.Handled = true;
    }
  }
}

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