Windows forms are quick and easy to create in any .NET language. By choosing the right project template, a developer can be dragging controls onto a Windows form, and have a professional looking user interface constructed in a matter of minutes. Printing the form, however, is a different matter. The programmer can leave the user to press Print Screen, and then paste the results into MS Paint, or a similar application. However, this is messy, and un-professional. Consider the case where the form contains multiple tabs, or where data in a list box cannot all be displayed at once. Using this approach, the user will be involved with clicking controls, an capturing screen prints for quite a while. Alternatively, the .NET development environment provides several controls to "help" with printing. Using these controls, the developer may listen for events, and respond by rendering output using GDI+. This approach can result in very professional output, but the drawback is the amount of time it takes to develop printing support on a form-by-form basis. When compared to the ease of dragging controls onto the form for the initial user interface, it appears cumbersome, costly, time consuming, and can be prone to bugs.