Share via

Printers Collection for Visual Basic 6.0 Users

The Visual Basic 6.0 Printers collection has no direct equivalent in Visual Basic 2008.

Conceptual Differences

In Visual Basic 6.0, the Printers collection is used to return information about available printers on a system. Typically, you iterate through the Printers collection to find a printer with certain attributes and then set that printer to be the default printer for your application. For example, you might choose a laser printer instead of a dot matrix printer.

In Visual Basic 2008, there is no direct equivalent for the Printers collection, and the model has changed: Rather than choosing a printer for your application, you should allow your users to make their own choices.


Visual Basic 2008 has a Printers collection that enables upgraded Visual Basic 6.0 Printer code to run without modification. For any new development, you should use the PrinterSettings class.

A PrintDialog component can be used to present a list of available printers to the user. Properties for the printer selected by the user can be retrieved using the PrinterSettings class.

The Printers collection in Visual Basic 6.0 has two properties: Item and Count. The PrintDialog component has no equivalent properties. The PrinterSettings class has an InstalledPrinters collection with Item and Count; however, this is a String collection and cannot be used to query the attributes of a printer.

Code Changes for the Printers Collection

The following code example illustrates the differences in coding techniques between Visual Basic 6.0 and Visual Basic 2008.

Code Changes for Returning a List of Available Printers

The following example demonstrates populating a ListBox control with a list of available printers.

' Visual Basic 6.0
Dim X As Printer
For Each X In Printers
    List1.AddItem X.DeviceName
' Visual BasicDim i AsIntegerDim pkInstalledPrinters AsStringFor i = 0 To System.Drawing.Printing.PrinterSettings. _
  InstalledPrinters.Count - 1

  pkInstalledPrinters = System.Drawing.Printing.PrinterSettings. _

Upgrade Notes

When a Visual Basic 6.0 application is upgraded to Visual Basic 2008, any instances of the Printers collection are upgraded to the Visual Basic 2008 Printer object.

See Also


Printing Changes for Visual Basic 6.0 Users


PrintDialog Component Overview (Windows Forms)


Other Resources

Windows Forms Print Support