This is a printer setting. You can use the PrintDialog and set the AllowSomePages property to let user select a range with this dialog, when the PrintDocument is assigned the PrinterSettings are automatically transferred. Or you can give user a your own custom page range dialog and set the PrintDocument.PrinterSettings properties directly, these are PrintRange, FromPage and ToPage. In the PrintPage event you draw the relevant ranges dynamically according to these properties found in e.PageSettings.PrinterSettings.