サブフォームに貼り付けて使用したとき、サブフォーム破棄時に例外が発生する
対象製品
El Tabelle for .NET
発生環境
v1.2.2003.0630
v1.2.2003.0724
v1.2.2003.0829
v1.2.2003.0902 (HotFix)
v1.2.2003.0724
v1.2.2003.0829
v1.2.2003.0902 (HotFix)
状況
修正済み
詳細
El Tabelle for .NET のコントロールをサブフォームに貼り付け、呼び出し元のフォームから操作を行ったとき、サブフォーム破棄時に例外が発生します。
再現手順:
1. Windows Application プロジェクトを作成し、Form1 と Form2 を新規に作成する。
2. Form1 にボタン、Form2 に WorkBook をそれぞれ配置する。
3. From1 のボタンに次のコーディングを行う。
[Visual Basic]
Dim objForm2 As New Form2()
objForm2.Visible = False
objForm2.Show()
objForm2.Hide()
With objForm2.WorkBook1
.Sheets.Add(New GrapeCity.Win.ElTabelle.Sheet())
.ActiveSheet.Document.Print()
.Sheets.RemoveAt(0)
.Sheets.Add(New GrapeCity.Win.ElTabelle.Sheet())
.ActiveSheet.Document.Print()
.Sheets.RemoveAt(0)
.Sheets.Add(New GrapeCity.Win.ElTabelle.Sheet())
.ActiveSheet.Document.Print()
.Sheets.RemoveAt(0)
End With
4. 実行し、ボタンを押すと3度目の印刷の終了付近で
「'System.NullReferenceException' のハンドルされていない例外が system.windows.forms.dll で発生しました。」
が発生する。
再現手順:
1. Windows Application プロジェクトを作成し、Form1 と Form2 を新規に作成する。
2. Form1 にボタン、Form2 に WorkBook をそれぞれ配置する。
3. From1 のボタンに次のコーディングを行う。
[Visual Basic]
Dim objForm2 As New Form2()
objForm2.Visible = False
objForm2.Show()
objForm2.Hide()
With objForm2.WorkBook1
.Sheets.Add(New GrapeCity.Win.ElTabelle.Sheet())
.ActiveSheet.Document.Print()
.Sheets.RemoveAt(0)
.Sheets.Add(New GrapeCity.Win.ElTabelle.Sheet())
.ActiveSheet.Document.Print()
.Sheets.RemoveAt(0)
.Sheets.Add(New GrapeCity.Win.ElTabelle.Sheet())
.ActiveSheet.Document.Print()
.Sheets.RemoveAt(0)
End With
4. 実行し、ボタンを押すと3度目の印刷の終了付近で
「'System.NullReferenceException' のハンドルされていない例外が system.windows.forms.dll で発生しました。」
が発生する。
回避方法
この現象はファイル バージョン v1.2.2003.0911 (HotFix) 以降のアセンブリで修正されています。
修正版は こちら からダウンロードできます。
問題が修正されたアセンブリに移行するか、次の操作を行うことで現象を回避できます。
・サブフォーム破棄時に Form.Dispose() を明示的に実行する。
修正版は こちら からダウンロードできます。
問題が修正されたアセンブリに移行するか、次の操作を行うことで現象を回避できます。
・サブフォーム破棄時に Form.Dispose() を明示的に実行する。
キーワード
ELTB03322
この文書は、以前は次のバグレポートIDで公開されていました : 3611