如果不进入vb.net中的打印预览对话框,我无法直接打印

如果不进入vb.net中的打印预览对话框,我无法直接打印,vb.net,printing,Vb.net,Printing,我正在使用窗口窗体应用程序,我使用打印预览对话框进行打印。当我单击打印按钮时,打印预览对话框打开,然后我必须单击打印预览对话框中的打印选项,打印机才能正确打印。但我的要求是,当我单击打印按钮时,打印机直接打印该文档没有进入打印预览对话框。我搜索了许多堆栈溢出问题和其他网站,但没有得到所需的要点,java脚本或其他我不需要的语言提供的帮助。我尝试的代码如下所示: Private Sub print_Button_Click(sender As Object, e As EventArgs) Ha

我正在使用窗口窗体应用程序,我使用打印预览对话框进行打印。当我单击打印按钮时,打印预览对话框打开,然后我必须单击打印预览对话框中的打印选项,打印机才能正确打印。但我的要求是,当我单击打印按钮时,打印机直接打印该文档没有进入打印预览对话框。我搜索了许多堆栈溢出问题和其他网站,但没有得到所需的要点,java脚本或其他我不需要的语言提供的帮助。我尝试的代码如下所示:

 Private Sub print_Button_Click(sender As Object, e As EventArgs) Handles print_preview_Button.Click
    PrintPreviewDialog1.Document = PrintDocument1
    PrintPreviewDialog1.ShowDialog()
End Sub
“PrintDocument1\u PrintPage”事件代码为

 Private Sub PrintDocument1_PrintPage(sender As Object, e As Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
   'printing code is here... working correctly
 End Sub

在我应该进行更改以获得所需结果的地方…?

使用
PrintDialog
类,而不是使用
PrintDocument
类。确保正确传递打印机名称

Imports System.Drawing.Printing

....

Dim pd as New PrintDocument()
pd.PrinterSettings.PrinterName = "my printer"
如果要获取所有已连接打印机的名称,请尝试:

For each s as String in PrinterSettings.InstalledPrinters

  Dim printerName as string = s

Next

它运行良好。@Ubaidm不客气。