メニュー・印刷プレビュー(横向き)VB2005
メニュー・印刷プレビュー(横向き)VB2005
メニューの実装
「MenuStrip」コントロールをフォームにドラッグドロップ。
プロパティーコントロールの「標準項目の挿入」をクリックすると労せずしてメニューの雛形が出来上がる。
印刷プレビューの実装
「PrintPreviewDialog」「PrintDocument」コントロールをフォームにドラッグドロップ。
先程追加したメニューの「印刷プレビュー」のイベントハンドラに、印刷データをゴリゴリと書く。
ここではCSVでデータを作成している。
その印刷データだが、実際には、印刷データをグラフィックスに描画することが必要になる。
その部分が「PrintDocument1_PrintPage」。
e.Graphics.DrawStringメソッドで書いている。因みに「vbCrLf」も改行として書いてくれる。
印刷プレビュー用紙を横向きに変更する。
横向きにするには
「PrintDocument1_QueryPageSettings」で
「e.PageSettings.Landscape = True」とする必要がある。
他の箇所でPrintDocument1のLandscapeを変更しても意味がないようだ?
Private Sub 印刷プレビューVToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 印刷プレビューVToolStripMenuItem.Click
'印刷プレビュー
'印刷データをゴリゴリと書く()
Dim i As Integer = 1
PrintData = "リンク一覧" & vbCrLf
Do Until i = Me.ListView1.Items.Count + 1
'CSV形式で
PrintData = PrintData & """" & Me.ListView1.Items(i - 1).SubItems(0).Text & """,""" & _
Me.ListView1.Items(i - 1).SubItems(1).Text & """,""" & _
Me.ListView1.Items(i - 1).SubItems(2).Text & """" & vbCrLf
i = i + 1
Loop
PrintDocument1.DocumentName = "リンク一覧"
' PrintDocument1.DefaultPageSettings.Landscape = True '横向きに ここでは関係ないようだ
With Me.PrintPreviewDialog1
.Document = Me.PrintDocument1
.ShowDialog()
.SetDesktopLocation(Me.Location.X, Me.Location.Y) '有効にならない?
End With
End Sub
Private Sub PrintDocument1_PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
e.Graphics.DrawString(PrintData, New Font("MS ゴシック", 5), Brushes.Black, e.MarginBounds.Left, e.MarginBounds.Top, New StringFormat())
e.HasMorePages = False
End Sub
Private Sub PrintDocument1_QueryPageSettings(ByVal sender As Object, ByVal e As System.Drawing.Printing.QueryPageSettingsEventArgs) Handles PrintDocument1.QueryPageSettings
e.PageSettings.Landscape = True '横向きに
End Sub
|
|