In .NET 5, WinForms got a WebView2 control for displaying web pages.. even ones we create on-the-fly while the app’s running. Let’s kick the tires.
In .NET 5, WinForms got a major upgrade to the MessageBox called TaskDialog. It’s way more flexible and powerful - let’s check it out!
One of the smaller updates to make it into .NET 9 for WinForms was allowing multi-selection in the FolderBrowserDialog. Let’s see how.
Buried deep in the list of .NET 8 improvements for WinForms is the GetStockIcon method. It gives us a way to access stock Windows icons at runtime for the OS the app is running on. Let’s check it out.
Testing .NET code involving time has always been a pain, but the TimeProvider class (backported to the .NET Framework) gives us awesome new tools.
Thanks to CEFSharp, we can finally bring WinForms to the web! That didn’t sound right. Okay, let’s just look at hosting a site in IIS and showing it.
WinForms and the web. Like oil and water, they don’t mix well. But with CEFSharp, they mix a LOT better. Let’s check it out.
Unit testing a WinForms app is an uphill battle in the best of times, before you add in classes like MessageBox. Let’s make the best of it.
If you’re in a legacy codebase with a centralized “message box” form, why not add some features that make it work for you? 😏
If you find yourself supporting a WinForms application, you’re likely to notice the tests… or lack thereof. Just because we may not have been so focused on automated tests and continuous integration when WinForms was younger, that doesn’t mean we can’t introduce them now. Better late than never!
Using the async/await pattern in WinForms is an easy win, helping prevent one of the most annoying user experiences - a frozen UI.
If you’re writing a WPF application and need to find the state of the Num Lock, Caps Lock, or Scroll Lock keys, you’re in luck - there’s a method for that.
Passing data between two Forms is very common in WinForms. There’s a couple ways to do it, and one’s better than the other. Let’s take a look.
In WPF, a ListView allows for quite a bit of flexibility. Let’s take a look at filtering a ListView, using input being typed into a TextBox.