メニュー・印刷プレビュー(横向き)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
 
  |   
		
	
	 
	 
		
	 
		
	 
	 |