Debsbond008
Действительно не могу понять, что за этим стоит. Как говорит Дейв Кресковяк о возможных ошибках вашего дела. Но я работаю над проектом, где мне нужен PrintPreviewDialog, и мне нужно выбрать принтер вместо прямой печати документа, когда нажата опция печати PrintPreviewDialog. Так мне и удалось сделать
1. манипулировать печати инструментов из диалогового окна printpreviewdialog
2. Добавьте обработчик в PrintDocument.Событие PrintPage и PrintPreview.Событие PrintClick
Private Sub Print_btn_Click(sender As Object, e As EventArgs) Handles Print_btn.Click
Dim b As New ToolStripButton
b.Image = CType(PrintPreviewDialog1.Controls(1), ToolStrip).ImageList.Images(0)
b.ToolTipText = "Print"
b.DisplayStyle = ToolStripItemDisplayStyle.Image
AddHandler b.Click, AddressOf PrintPreview_PrintClick
CType(PrintPreviewDialog1.Controls(1), ToolStrip).Items.RemoveAt(0)
CType(PrintPreviewDialog1.Controls(1), ToolStrip).Items.Insert(0, b)
AddHandler PrintDocument1.PrintPage, AddressOf PrintDocument1_PrintPage
PrintPreviewDialog1.Document = PrintDocument1
PrintDocument1.OriginAtMargins = False
PrintPreviewDialog1.ShowDialog()
End Sub
Private Sub PrintPreview_PrintClick(sender As Object, e As EventArgs)
Try
PrintDialog1.Document = PrintDocument1
If PrintDialog1.ShowDialog() = DialogResult.OK Then
PrintDocument1.Print()
End If
Catch ex As Exception
End Try
End Sub
Private Sub PrintDocument1_PrintPage(sender As Object, e As Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
Me.BackgroundImage = WindowsApp1.My.Resources.Resources.WhiteBackground
Dim print_bmp As Bitmap = GetClientareaImage(Me)
e.Graphics.DrawImage(print_bmp, 0, 0)
End Sub
Мне нужно распечатать изображение клиентской области формы. Поэтому я пишу функцию "GetClientareaImage ()", которая не имеет никакого отношения к этому решению. Вот почему я не публикую его.