リッチテキスト型セルを設定したセルに改行を含むリッチテキストを設定してPrintInfoクラスのBestFitColsプロパティをTrueにすると、改行コードの数に応じて列幅が広がって印刷される
対象製品
SPREAD for Windows Forms 7.0J
状況
修正済み
詳細
リッチテキスト型セルを設定したセルに改行を含むリッチテキストを設定してPrintInfoクラスのBestFitColsプロパティをTrueにすると、改行コードの数に応じて列幅が広がって印刷されます。
【手順】
1.新規フォームにSPREADとButtonを配置します
2.下記サンプルコードをコピーし、アプリケーションを実行します
3.Buttonをクリックします
--改行を含むB列の列幅がA列よりも広がります
【サンプルコード】
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
' SPREADの設定
Dim ctText As New FarPoint.Win.Spread.CellType.RichTextCellType()
ctText.Multiline = True
FpSpread1.ActiveSheet.Columns(0).CellType = ctText
FpSpread1.ActiveSheet.Columns(1).CellType = ctText
Dim strRtf As String = Nothing
' リッチテキスト文字列
' 改行コード0個
Using rtbTemp As New RichTextBox()
rtbTemp.Text = "test"
strRtf = rtbTemp.Rtf
End Using
FpSpread1.ActiveSheet.Cells(0, 0).Value = strRtf
' 改行コード10個
Using rtbTemp As New RichTextBox()
rtbTemp.Text = "test"
For i As Integer = 1 To 10
rtbTemp.Text += System.Environment.NewLine + "test"
Next
strRtf = rtbTemp.Rtf
End Using
FpSpread1.ActiveSheet.Cells(0, 1).Value = strRtf
End Sub
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
' 印刷
Dim pi As New FarPoint.Win.Spread.PrintInfo()
pi.BestFitCols = True
pi.BestFitRows = True
pi.Preview = True
FpSpread1.ActiveSheet.PrintInfo = pi
FpSpread1.PrintSheet(FpSpread1.ActiveSheetIndex)
End Sub
【手順】
1.新規フォームにSPREADとButtonを配置します
2.下記サンプルコードをコピーし、アプリケーションを実行します
3.Buttonをクリックします
--改行を含むB列の列幅がA列よりも広がります
【サンプルコード】
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
' SPREADの設定
Dim ctText As New FarPoint.Win.Spread.CellType.RichTextCellType()
ctText.Multiline = True
FpSpread1.ActiveSheet.Columns(0).CellType = ctText
FpSpread1.ActiveSheet.Columns(1).CellType = ctText
Dim strRtf As String = Nothing
' リッチテキスト文字列
' 改行コード0個
Using rtbTemp As New RichTextBox()
rtbTemp.Text = "test"
strRtf = rtbTemp.Rtf
End Using
FpSpread1.ActiveSheet.Cells(0, 0).Value = strRtf
' 改行コード10個
Using rtbTemp As New RichTextBox()
rtbTemp.Text = "test"
For i As Integer = 1 To 10
rtbTemp.Text += System.Environment.NewLine + "test"
Next
strRtf = rtbTemp.Rtf
End Using
FpSpread1.ActiveSheet.Cells(0, 1).Value = strRtf
End Sub
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
' 印刷
Dim pi As New FarPoint.Win.Spread.PrintInfo()
pi.BestFitCols = True
pi.BestFitRows = True
pi.Preview = True
FpSpread1.ActiveSheet.PrintInfo = pi
FpSpread1.PrintSheet(FpSpread1.ActiveSheetIndex)
End Sub
回避方法
Service Pack 6(v7.0.2019.2008)で修正済み。