Voici le code qui m'affiche ce formulaire. Maintenant je veux ajouter le combo qui contient les noms des imprimantes
Dim pgprint As PageSettings
pgprint = New PageSettings()
Dim configprint As PrinterSettings
configprint = New PrinterSettings()
dlgpgsetup.PageSettings() = pgprint
dlgpgsetup.AllowPrinter = True
dlgpgsetup.PrinterSettings = configprint
dlgpgsetup.ShowDialog()
EDIT : Ajout des balises de code (la coloration syntaxique).
Imports System.Drawing.Printing
Public Class Form1
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
For i = 0 To PrinterSettings.InstalledPrinters.Count - 1
ComboBox1.Items.Add(PrinterSettings.InstalledPrinters.Item(i))
ComboBox1.SelectedIndex = 0
Next
End Sub
End Class
Il semble qu'à l'époque de la sortie de Vista, les développeurs Microsoft aient décidé que ce formulaire ne donnait plus accès au choix des imprimantes.
Il faut utiliser un PrintDialog
Dim Doc As New PrintDocument
Dim PageSetup As New PrintDialog
With PageSetup
.AllowSomePages = True
.Document = Doc
.ShowDialog()
End With
With Me.TextBox6
.Text = Doc.PrinterSettings.PrinterName & Environment.NewLine
.Text = .Text & "Nb de copies : " & Doc.PrinterSettings.Copies.ToString & Environment.NewLine
.Text = .Text & "Assemblées : " & Doc.PrinterSettings.Collate.ToString & Environment.NewLine
.Text = .Text & "Couleur : " & Doc.DefaultPageSettings.Color.ToString & Environment.NewLine
.Text = .Text & "Orientation : " & If(Doc.DefaultPageSettings.Landscape, "Paysage", "Portrait") & Environment.NewLine
.Text = .Text & "Format : " & Doc.DefaultPageSettings.PaperSize.ToString & Environment.NewLine
End With