PowerShell GUIs: Where do I start?

July 16th, 2015 by June Blender
Last updated on July 20th, 2016


I’ve been using Windows PowerShell since the very first version of Monad in 2005, but PowerShell-based applications with a graphic user interface (GUI) are a whole new world. Instead of thinking of cmdlets and parameters or properties and methods, you need to think in object events. And because there’s no console with .ps1xml-directed views, you need manage all output streams, including standard output and errors.

Most importantly, because you’re dealing with real users, you need to assume that people will type and click whatever they please in whatever order you let them. It reminds me of turning the car over to my teenagers for the first time. In a GUI app, the user drives. So, if you don’t want them to go somewhere, you need to enable and reveal parts of the interface selectively.

PowerShell Studio automates the complex parts, including loading assemblies, instantiating objects, and registering event handlers, so you can focus on making great PowerShell GUI apps.


Here are some of the fabulous resources that I used to help me learn how to create PowerShell GUIs. If you have a favorite book, tutorial, or blog post, comment and I’ll add it to this post.

My First PowerShell GUI

If you’re starting from scratch, start here:


Basic GUI App Techniques

Now that you have the basics, avoid the most common errors encountered by scripters moving to GUI apps:


Easy, but Sophisticated

These easy and quick techniques make your GUI apps more usable. They take just minutes to master.


Apps with multiple windows

Mastered the basics? Try a multi-form application.


Best Practices for UI Design

Where do I put that button? Should I center the textbox? You might be new to GUI app development, but your GUI apps don’t have to advertise it. Learn from user experience and human factors engineers about best practices for UI design.

  • About Face: The Essentials of Interaction Design 4th Edition by Alan Cooper, Robert Reimann, David Cronin, & Christopher Noessel
    Learn the principles of UI design from people who study user-computer interaction. An excellent book for beginners and experienced designers.
  • 9 Things I Learned in UX Grad School by Sara Ford
    Sara summarizes the practical elements of academic UX research for the UI designer, including “Why ‘Developer Speak’ in UI is so bad ” and “Why people make errors”
  • User Interface Design for Administrators
    When do you use a button? When are radio buttons better than checkboxes? SAPIEN Chief Technology Officer, Alexander Riedel, creates a control table that you’ll refer to again and again.
  • Single Form or Multiple Dialogs?
    How much is too much on a single form? Learn the guidelines that professional UI developers use to make this critical decision.
  • Design Better Forms by Andrew Coyle
    Great do’s and don’t’s from a professional UI designer.
  • How I learned to love DialogResult
    The DialogResult property closes my form abruptly. Why shouldn’t I just set its value to “None?” Learn about the best-practice standards that DialogResult supports.


Those Nagging Questions

  • PowerShell GUI: Why think in events?
    A PowerShell GUI application consists of an unordered collection of event handlers. It’s so different from traditional scripting that you learn to think in a whole new way.
  • Scope in a PowerShell GUI App
    Why does each event handler runs in its own scope? Learn how to share variables between event handlers.
  • The Methods That Register Events
    What’s the source of the methods that register events, like $buttonClose.add_Click()? MSDN doesn’t list them and Get-Member doesn’t return them.


Troubleshooting & Debugging

One-A-Day:  Explore the Windows Forms Controls

One of the best, and easiest, ways to learn the UI controls, is to read our Spotlight articles and try the examples. You can read the MSDN documentation about Windows Forms controls, but our Spotlight articles, designed for PowerShell scripters, focus on the most important features of each UI control, and get you going with PowerShell examples.

Use your “Month of Lunches” habit to explore one new control each day.

In PowerShell Studio, to open a Spotlight article about a control:

  • In the Toolbox or Property pane, right-click a control and then click View Spotlight Article.
  • Or, in the Designer window, right a control, click Help, and then click View Spotlight Article.


Spotlight Articles:

Form ImageList StatusBar
Button ListView StatusStrip
Textbox MaskedTextBox TabControl
ComboBox NotifyIcon Timer
CheckBox PictureBox ToolTip
ContextMenuStrip ProgressBar TreeView
ErrorProvider RadioButton



If you have suggestions that might help other scripters, leave a comment or tweet it to me at @juneb_get_help.


[Google+]   [Facebook]   [LinkedIn]   [StumbleUpon]   [Digg]   [Reddit]   [Google Bookmark]  

Tags: , ,