SPREADが配置されていないFormから他のFormの非表示のSPREADの印刷を行うとエラーが発生する
対象製品
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
【手順】
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
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