The Cyotek Development Blog has moved - please find it at

Although these pages remain accessible, some content may not display correctly in future as the new blog evolves.


Sometimes you may wish to create an application that sits running in the background but doesn't actually display an initial user interface. However, the user can interact with the application and so therefore its not appropriate to be a service. Often such applications are accessible from a system tray icon. Another viable requirement might be for multiple top level windows, for example recent versions of Microsoft Word, where each document has its own application window.

By default however, a normal Windows Form application displays the start-up form which definitely isn't desirable, especially as hiding this form isn't as straightforward as you might expect. Fortunately however, the framework provides us with the ApplicationContext class that can be used by Application.Run.

This article describes how to use application contexts to create an application that initially has only a system tray icon to which further functionality can be accessed.

Continue Reading

Enums are useful language features. But what happens when you want to display a string version of an enum member rather than just casting the member to a string? You could manually create a switch statement for conversion, and periodically update such functions when extending the source enum. Or you could use the power of reflection and attributes to do it automatically.

Continue Reading