Shaikh Irfan Ответов: 1

Как получить доступ к событию кнопки печати диалогового окна предварительного просмотра печати в C#


Как я могу проверить печать кнопка "Печать" событие диалоговое окно предварительного просмотра?

например :

Я хочу распечатать страницу только один раз, и когда пользователь во второй раз нажмет на кнопку Print Preview Dialog Print, то я ограничу пользователя.

Dave Kreskowiak

Это звучит невероятно глупо. Что делать, если принтер "съедает" задание из-за какого-то аппаратного сбоя и его нужно перепечатать??

ridoy

полностью согласен.

1 Ответов

Рейтинг:
0

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 ()", которая не имеет никакого отношения к этому решению. Вот почему я не публикую его.