2012-05-13 58 views
10

Khi tôi sử dụng MyPrintDocument.print() trong một ứng dụng Windows được viết bằng C#, một hộp thoại được hiển thị cho quy trình in ấn xử lý của Windows bằng nút hủy. Tôi không muốn hộp thoại này hiển thị, có thể không?Làm thế nào để bỏ qua hộp thoại in trong printDocument.print() và in trang trực tiếp?

Nếu không, tôi nên sử dụng cách nào? Chương trình của tôi sử dụng một máy in nhiệt.

Trả lời

16

Bạn đang sử dụng PrintController.

.NET Framework bao gồm ba trình điều khiển in có nguồn gốc từ PrintController giúp thực hiện các tác vụ phổ biến. StandardPrintController in tài liệu vào máy in. PreviewPrintController tạo bản xem trước về tài liệu sẽ trông như thế nào khi được in và được sử dụng bởi các lớp học PrintPreviewControlPrintPreviewDialog. PrintControllerWithStatusDialog cung cấp hộp thoại trạng thái in trong quá trình in.

Có vẻ như bạn đang sử dụng PrintControllerWithStatusDialogPrintController.


Nên biết trước: Tôi không ở một vị trí để xác minh rằng cơ bản PrintController không hành động theo cùng một cách.

Theo MSDN Forum Posting này PrintControllerWithStatusDialog là mặc định:

Ông thấy một cái gì đó như thế này:

MyPrintDocument.PrintController = new System.Drawing.Printing.StandardPrintController(); 
4

Nếu bạn không chỉ định các PrintDocument.PrintController tài sản sau đó bạn sẽ có được một bộ điều khiển in mặc định. Một thể hiện của PrintControllerWithStatusDialog hiển thị hộp thoại tiến trình, đếm các trang và thường thông báo cho người dùng rằng chương trình không phản hồi vì một lý do nào đó nhưng không được treo.

Chỉ cần gán lại nó trong hàm tạo biểu mẫu. Mã Boilerplate là:

Public Class Form1 
    Public Sub New() 
     InitializeComponent() 
     PrintDocument1.PrintController = New System.Drawing.Printing.StandardPrintController 
    End Sub 
End Class 

Và bạn sẽ phải làm điều gì đó khác để cho người dùng biết rằng đang in. Ít nhất hiển thị hourglass cursor.

Các vấn đề liên quan