コンボボックス型セルを使用し CellNotify イベントで KeyActionにEndEditプロパティを設定すると 例外が発生する
対象製品
El Tabelle MultiRow 4.0J
発生環境
この現象は、次のファイルバージョンのアセンブリで発生します。
v4.0.2006.0811 および以前のアセンブリ
v4.0.2006.0811 および以前のアセンブリ
状況
修正済み
詳細
コンボボックス型セルを使用し CellNotify の Drop Close イベントで KeyActionにEditStateを設定すると StackOverflowException が発生します。
例えば、次に示すコーディングを実施し、「ドロップダウンリストを選択したときに編集を確定する」 ことを実現したい場合に、本現象が発生します。
[Visual Basic]
Select Case e.Name
Case DropClose
MultiRowSheet1.KeyAction(MKeyAction.EndEdit)
End Select
[C#]
switch(e.Name.ToString())
{
case "DropClose":
multiRowSheet1.KeyAction(MKeyAction.EndEdit);
break;
}
例えば、次に示すコーディングを実施し、「ドロップダウンリストを選択したときに編集を確定する」 ことを実現したい場合に、本現象が発生します。
[Visual Basic]
Select Case e.Name
Case DropClose
MultiRowSheet1.KeyAction(MKeyAction.EndEdit)
End Select
[C#]
switch(e.Name.ToString())
{
case "DropClose":
multiRowSheet1.KeyAction(MKeyAction.EndEdit);
break;
}
回避方法
StackOverflowExceptionの発生は、ファイル バージョン v4.0.2006.0915 以降のアセンブリで修正されています。v4.0.2006.0915 は、HotFix で提供されます。
但し、ファイル バージョン v4.0.2006.0915 以降のアセンブリで、本現象が発生する目的の処理は実現できません。 例外発生のみ抑止しております。 本現象が発生する目的の処理を実現させたい場合は、次のどちらかの回避策を適用してください。
1. 拡張コンボボックス型セルを使用する。
2. "SelectedIndexChanged"イベントでKeyActionをEndEditに変更する。
[Visual Basic]
Select Case e.Name
Case SelectedIndexChanged
MultiRowSheet1.KeyAction(MKeyAction.EndEdit)
End Select
[C#]
switch(e.Name.ToString())
{
case "SelectedIndexChanged":
multiRowSheet1.KeyAction(MKeyAction.EndEdit);
break;
}
但し、ファイル バージョン v4.0.2006.0915 以降のアセンブリで、本現象が発生する目的の処理は実現できません。 例外発生のみ抑止しております。 本現象が発生する目的の処理を実現させたい場合は、次のどちらかの回避策を適用してください。
1. 拡張コンボボックス型セルを使用する。
2. "SelectedIndexChanged"イベントでKeyActionをEndEditに変更する。
[Visual Basic]
Select Case e.Name
Case SelectedIndexChanged
MultiRowSheet1.KeyAction(MKeyAction.EndEdit)
End Select
[C#]
switch(e.Name.ToString())
{
case "SelectedIndexChanged":
multiRowSheet1.KeyAction(MKeyAction.EndEdit);
break;
}
キーワード
ETMR05646
この文書は、以前は次のバグレポートIDで公開されていました : 6416