SPREADが配置されていないFormから他のFormの非表示のSPREADの印刷を行うとエラーが発生する

文書番号 : 39233     文書種別 : 不具合     登録日 : 2016/01/14     最終更新日 : 2016/02/12
文書を印刷する
対象製品
SPREAD for Windows Forms 7.0J
発生環境
Version 7.0.2018.2008(SP5)で発生し、Version 7.0.2016.2008(SP4)では発生しません。
状況
修正済み
詳細
SPREADが配置されていないFormから他のFormの非表示のSPREADの印刷を行うとエラーが発生します。

【手順】
1.新規フォームForm1にButtonを配置します
2.新規フォームForm2にSPREADを配置します
3.下記サンプルコードをコピーし、アプリケーションを実行します
4.Buttonをクリックします
   --エラーメッセージが表示されます

【サンプルコード(Form1)】
  Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Form2.Show()
    Form2.FpSpread1_Sheet1.Cells(0, 0).Value = "abc"
    Form2.FpSpread1.PrintSheet(0)
  End Sub

【サンプルコード(Form2)】
  Public Sub New()

    ' この呼び出しはデザイナーで必要です。
    InitializeComponent()

    ' InitializeComponent() 呼び出しの後で初期化を追加します。
    FpSpread1.Visible = False
  End Sub
回避方法
Service Pack 6(v7.0.2019.2008)で修正済み。
Service Pack 6(v7.0.2019.2008)より前のバージョンでは次の回避方法が有効です。
------------------------------------------

以下のサンプルコードのように、コントロールのバインド先のウィンドウ ハンドルを取得します。

【サンプルコード(Form1)】
  Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Form2.Show()
    Dim dummy As IntPtr = Form2.FpSpread1.Handle ' <== 回避策
    Form2.FpSpread1_Sheet1.Cells(0, 0).Value = "abc"
    Form2.FpSpread1.PrintSheet(0)
  End Sub