[ETSH05743]ユーザー定義型セルで特定のショートカットキーが動作しない

文書番号 : 22598     文書種別 : 制限事項     最終更新日 : 2006/09/22
文書を印刷する
対象製品
El Tabelle Sheet 4.0J
発生環境
動作保証環境と同じ
詳細
シートにショートカットキーを定義したとき、ユーザー定義型セルの編集中に特定のショートカットキーが動作しません。たとえば、Enter キーに「次のセルへ移動」する処理を割り当てたとき、既存のセル型では正しく動作しますが、ユーザー定義型セルでは動作しません。

このような現象は、次のキーをショートカットキーとして指定している場合に確認できます。

・Enter
・Esc
・Tab
・Tab + Shift
・PageUp
・PageDown
・PageUp + Ctrl
・PageDown + Ctrl
・↑(Up) + Ctrl
・↓(Down) + Ctrl
・→(Right) + Ctrl
・←(Left) + Ctrl

以下は現象を再現するためのサンプルコードです。

[Visual Basic]
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  'Enterキーに次のセルへの移動を割り当てる
  Dim keyActions(0) As GrapeCity.Win.ElTabelle.KeyAction
  keyActions(0) = GrapeCity.Win.ElTabelle.KeyAction.NextCellWithWrap
  Dim shortcutEnter As GrapeCity.Win.ElTabelle.ShortCut = New GrapeCity.Win.ElTabelle.ShortCut(Keys.Enter, keyActions)
  AddHandler shortcutEnter.ShortCutNotify, New GrapeCity.Win.ElTabelle.ShortCutNotifyHandler(AddressOf shortcutEnter_ShortcutNotify)
  Sheet1.ShortCuts.Add(shortcutEnter)

  '常時入力モードに設定する
  Sheet1.EditType = GrapeCity.Win.ElTabelle.EditType.AlwaysEdit

  'ユーザー定義型セルを設定する
  Sheet1(0, 0).Editor = New CustomNumber()
End Sub

Private Sub shortcutEnter_ShortcutNotify(ByVal sender As System.Object, ByVal e As GrapeCity.Win.ElTabelle.ShortCutNotifyEventArgs)
  'ユーザー定義型セルで Enter キーを押した場合のみ、ショートカットキーが動作せずイベントも発生しない
  Console.WriteLine("shortcutEnter_ShortcutNotify")
End Sub

[C#]
private void Form1_Load(object sender, EventArgs e)
{
  //Enterキーに次のセルへの移動を割り当てる
  GrapeCity.Win.ElTabelle.KeyAction[] keyActions = new GrapeCity.Win.ElTabelle.KeyAction[1];
  keyActions[0] = GrapeCity.Win.ElTabelle.KeyAction.NextCellWithWrap;
  GrapeCity.Win.ElTabelle.ShortCut shortcutEnter = new GrapeCity.Win.ElTabelle.ShortCut(Keys.Enter, keyActions);
  shortcutEnter.ShortCutNotify += new GrapeCity.Win.ElTabelle.ShortCutNotifyHandler(shortcutEnter_ShortcutNotify);
  sheet1.ShortCuts.Add(shortcutEnter);

  //常時入力モードに設定する
  sheet1.EditType = GrapeCity.Win.ElTabelle.EditType.AlwaysEdit;

  //ユーザー定義型セルを設定する
  sheet1[0, 0].Editor = new CustomNumber();
}

private void shortcutEnter_ShortcutNotify(object sender, GrapeCity.Win.ElTabelle.ShortCutNotifyEventArgs e)
{
  Console.WriteLine("shortcutEnter_ShortcutNotify");
}

※ CustomNumber クラスは、ヘルプファイル「ユーザー定義型セルの作成」からコピーします。
回避方法
この現象は、製品の制限によるものです。

ユーザー定義型セルでショートカットキーを直接処理することで現象を回避できます。サンプルコードは こちら よりダウンロードできます。

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