.NET WAIT WINDOW should probably be implemented as a static class to ensure a single WAIT WINDOW instance across the application. The WAIT window itself has to size and position itself to accommodate a given text message, and also has no title and stay always on top. A timer is required for TIMEOUT implementation. Window's reaction to keyboard and mouse events can be implemented via setting a global hook. An implementation should be a fairly simple project.