This article presents the instructional video for creating a similar GUI application that was covered in our recent post: Handling Steps Progress with a Background Job in a GUI Application.
This GUI application displays the list of all PDF documents from a selected folder, and also shows the progress of a task running in the background. Additionally, this application has the ability to stop the running job—if needed.
This application showcases a Responsive GUI. The Windows application will not freeze, and remains responsive to the user. In a normal Windows GUI application the form is non-responsive, making the user wait to get the control back and freezing the application at the task that is completed.
This video shows you how to:
- Create a new application.
- Work with Forms properties and anchoring controls.
- Add Controls from the Toolbox: RichTextBox, StartJob, Buttons, Label, and ProgressBar.
- Work with the Properties, Functions, and the Snippet panels.
- Add the code behind the controls:
- Set properties for the Progress Bar control.
- Work with JobTracker functions.
View the video here: “PowerShell Studio – Handling Progress with a Background Job in a GUI Application“.
Download the sample application use in the video: ListAllPDFMyDocApp1.zip
- PowerShell Studio New ProgressBar Control
- ProgressBarOverlay Control
- Creating Responsive Loops
- Creating Responsive Forms
- About Splatting
- Progress Bar series topics:
- Progress Bar Series (Part 1) – Displaying Script Progress In GUI Applications
- Progress Bar Series (Part 2) – Handling Progress with Notion of Completion in a GUI Application
- Progress Bar Series (Part 3) – Handling Progress Status Information in a GUI Application
- Progress Bar Series (Part 4) – Handling Steps Progress with a Background Job in a GUI Application
As always, if you have any ideas, comments, or feedback, please visit our feedback forum and reference this post.
Max Trinidad is a Technology Evangelist at SAPIEN Technologies Inc., and a Microsoft PowerShell MVP. You can reach him at email@example.com