印刷時にPrintInfo.AbortMessageに文字列を設定すると、2回目以降の印刷時にGetPrintPageCountメソッドの戻り値が"0"になる
対象製品
SPREAD for Windows Forms 7.0J
状況
修正済み
詳細
印刷時にPrintInfo.AbortMessageに文字列を設定すると、2回目以降の印刷時にGetPrintPageCountメソッドの戻り値が"0"になります。
【手順】
1.新規フォームにSPREADとButtonを配置します
2.下記サンプルコードをコピーし、アプリケーションを実行します
3.Buttonをクリックし、OKボタンをクリックして印刷します
4.Buttonをクリックします
--GetPrintPageCountメソッドの戻り値が"0"になります
【サンプルコード】
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
' テストデータの設定
FpSpread1.ActiveSheet.Cells(1, 1).Value = "test"
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim printset As New FarPoint.Win.Spread.PrintInfo()
printset.ShowPrintDialog = True
printset.AbortMessage = "Do you want to cancel the printing?"
FpSpread1.Sheets(0).PrintInfo = printset
If MsgBox("[印刷ページ数:" & FpSpread1.GetPrintPageCount(0).ToString() & "] 印刷してよろしいですか?", MsgBoxStyle.OkCancel) = vbOK Then
FpSpread1.PrintSheet(0)
End If
End Sub
【手順】
1.新規フォームにSPREADとButtonを配置します
2.下記サンプルコードをコピーし、アプリケーションを実行します
3.Buttonをクリックし、OKボタンをクリックして印刷します
4.Buttonをクリックします
--GetPrintPageCountメソッドの戻り値が"0"になります
【サンプルコード】
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
' テストデータの設定
FpSpread1.ActiveSheet.Cells(1, 1).Value = "test"
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim printset As New FarPoint.Win.Spread.PrintInfo()
printset.ShowPrintDialog = True
printset.AbortMessage = "Do you want to cancel the printing?"
FpSpread1.Sheets(0).PrintInfo = printset
If MsgBox("[印刷ページ数:" & FpSpread1.GetPrintPageCount(0).ToString() & "] 印刷してよろしいですか?", MsgBoxStyle.OkCancel) = vbOK Then
FpSpread1.PrintSheet(0)
End If
End Sub
回避方法
Service Pack 5(v7.0.2018.2008)で修正済み。
Service Pack 5(v7.0.2018.2008)より前のバージョンでは次の回避方法が有効です。
------------------------------------------
PrintSheet(-2)で擬似的な印刷を行ってから、GetPrintPageCountメソッドを呼び出します。
【サンプルコード】
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim printset As New FarPoint.Win.Spread.PrintInfo()
printset.ShowPrintDialog = True
printset.AbortMessage = "Do you want to cancel the printing?"
FpSpread1.Sheets(0).PrintInfo = printset
' 回避策
Try
FpSpread1.PrintSheet(-2)
Catch ex As Exception
End Try
If MsgBox("[印刷ページ数:" & FpSpread1.GetPrintPageCount(0).ToString() & "] 印刷してよろしいですか?", MsgBoxStyle.OkCancel) = vbOK Then
FpSpread1.PrintSheet(0)
End If
End Sub
Service Pack 5(v7.0.2018.2008)より前のバージョンでは次の回避方法が有効です。
------------------------------------------
PrintSheet(-2)で擬似的な印刷を行ってから、GetPrintPageCountメソッドを呼び出します。
【サンプルコード】
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim printset As New FarPoint.Win.Spread.PrintInfo()
printset.ShowPrintDialog = True
printset.AbortMessage = "Do you want to cancel the printing?"
FpSpread1.Sheets(0).PrintInfo = printset
' 回避策
Try
FpSpread1.PrintSheet(-2)
Catch ex As Exception
End Try
If MsgBox("[印刷ページ数:" & FpSpread1.GetPrintPageCount(0).ToString() & "] 印刷してよろしいですか?", MsgBoxStyle.OkCancel) = vbOK Then
FpSpread1.PrintSheet(0)
End If
End Sub