PrintDialog — omówienie składnika (Windows Forms .NET)
Drukowanie w formularzach systemu Windows obejmuje przede wszystkim używanie PrintDocument składnika w celu umożliwienia użytkownikowi drukowania. Kontrolka PrintPreviewDialogPrintDialog i PageSetupDialog składniki udostępniają znajomy interfejs graficzny użytkownikom systemu operacyjnego Windows.
Składnik PrintDialog
jest wstępnie skonfigurowanym oknie dialogowym służącym do wybierania drukarki, wybierania stron do drukowania i określania innych ustawień związanych z drukowaniem w aplikacjach opartych na systemie Windows. Jest to proste rozwiązanie dla ustawień związanych z drukarką i drukowaniem zamiast konfigurowania własnego okna dialogowego. Możesz umożliwić użytkownikom drukowanie wielu części dokumentów: drukowanie wszystkich, drukowanie wybranego zakresu stron lub drukowanie zaznaczenia. Korzystając ze standardowych okien dialogowych systemu Windows, można tworzyć aplikacje, których podstawowa funkcjonalność jest natychmiast znana użytkownikom. Składnik PrintDialog dziedziczy z CommonDialog klasy .
Zazwyczaj tworzysz nowe wystąpienie PrintDocument składnika i ustawiasz właściwości, które opisują, co należy wydrukować przy użyciu PrinterSettings klas i PageSettings . Print Wywołanie metody faktycznie wyświetla dokument.
Praca ze składnikiem
Użyj metody PrintDialog.ShowDialog, aby wyświetlić okno dialogowe w czasie wykonywania. Ten składnik ma właściwości odnoszące się do pojedynczego zadania drukowania (PrintDocument klasy) lub ustawień pojedynczej drukarki (PrinterSettings klasy). Z kolei jedna z tych dwóch może być współdzielona przez wiele drukarek.
Metoda okna dialogowego show ułatwia dodawanie okna dialogowego drukowania do formularza. Składnik PrintDialog zostanie wyświetlony na pasku zadań w dolnej części Projektant Formularzy systemu Windows w programie Visual Studio.
Jak przechwytywać dane wejściowe użytkownika z narzędzia PrintDialog w czasie wykonywania
Opcje związane z drukowaniem można ustawić w czasie projektowania. Czasami możesz zmienić te opcje w czasie wykonywania, najprawdopodobniej z powodu wyborów dokonanych przez użytkownika. Dane wejściowe użytkownika można przechwycić do drukowania dokumentu przy użyciu elementów PrintDialog i PrintDocument . W poniższych krokach pokazano wyświetlanie okna dialogowego drukowania dla dokumentu:
Dodaj element PrintDialog i do PrintDocument formularza.
Document Ustaw właściwość PrintDialog elementu na PrintDocument dodany do formularza.
PrintDialog1.Document = PrintDocument1
printDialog1.Document = printDocument1;
PrintDialog Wyświetl składnik przy użyciu ShowDialog metody .
If PrintDialog1.ShowDialog() = DialogResult.OK Then PrintDocument1.Print() End If
// display show dialog and if user selects "Ok" document is printed if (printDialog1.ShowDialog() == DialogResult.OK) printDocument1.Print();
Opcje drukowania użytkownika z okna dialogowego zostaną skopiowane do PrinterSettings właściwości PrintDocument składnika.
Jak tworzyć zadania drukowania
Podstawą drukowania w formularzach Systemu Windows jest PrintDocument składnik — w szczególności PrintPage zdarzenie. Pisząc kod do obsługi PrintPage zdarzenia, możesz określić, co ma być drukowane i jak go wydrukować. W poniższych krokach pokazano tworzenie zadania drukowania:
PrintDocument Dodaj składnik do formularza.
Napisz kod do obsługi PrintPage zdarzenia.
Musisz kodować własną logikę drukowania. Ponadto należy określić materiał do wydrukowania.
Jako materiał do wydrukowania, w poniższym przykładzie kodu przykładowa grafika w kształcie czerwonego prostokąta jest tworzona w procedurze PrintPage obsługi zdarzeń.
Private Sub PrintDocument1_PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage e.Graphics.FillRectangle(Brushes.Red, New Rectangle(100, 100, 100, 100)) End Sub
private void PrintDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e) => e.Graphics.FillRectangle(Brushes.Red, new Rectangle(100, 100, 100, 100));
Możesz również napisać kod dla zdarzeń BeginPrint i EndPrint . Pomoże to uwzględnić liczbę całkowitą reprezentującą całkowitą liczbę stron do wydrukowania, która jest dekrementowana w miarę drukowania każdej strony.
Uwaga
Możesz dodać PrintDialog składnik do formularza, aby zapewnić użytkownikom czysty i wydajny interfejs użytkownika. Document Ustawienie właściwości PrintDialog składnika umożliwia ustawienie właściwości związanych z dokumentem wydruku, z którym pracujesz w formularzu.
Aby uzyskać więcej informacji na temat specyfiki zadań drukowania formularzy systemu Windows, w tym sposobu programowego tworzenia zadania drukowania, zobacz PrintPageEventArgs.
Jak ukończyć zadania drukowania
Często procesory tekstów i inne aplikacje, które obejmują drukowanie, zapewniają użytkownikom możliwość wyświetlenia komunikatu dla użytkowników, że zadanie drukowania zostało ukończone. Tę funkcję można udostępnić w formularzach systemu Windows, obsługując EndPrint zdarzenie PrintDocument składnika.
Poniższa procedura wymaga utworzenia aplikacji opartej na systemie Windows ze składnikiem PrintDocument . Poniższa procedura jest standardowym sposobem włączania drukowania z aplikacji opartej na systemie Windows. Aby uzyskać więcej informacji na temat drukowania z formularzy systemu Windows przy użyciu PrintDocument składnika, zobacz How to create print jobs (Jak tworzyć zadania drukowania).
DocumentName Ustaw właściwość PrintDocument składnika.
PrintDocument1.DocumentName = "SamplePrintApp"
printDocument1.DocumentName = "SamplePrintApp";
Napisz kod do obsługi EndPrint zdarzenia.
W poniższym przykładzie kodu zostanie wyświetlone pole komunikatu wskazujące, że dokument zakończył drukowanie.
Private Sub PrintDocument1_EndPrint(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintEventArgs) Handles PrintDocument1.EndPrint MessageBox.Show(PrintDocument1.DocumentName + " has finished printing.") End Sub
private void PrintDocument1_EndPrint(object sender, System.Drawing.Printing.PrintEventArgs e) => MessageBox.Show(printDocument1.DocumentName + " has finished printing.");
.NET Desktop feedback