StatusStrip (replaces StatusBar)
As with the StatusBar, the StatusStrip shows information about your application. Many applications use these controls incorrectly. The main purpose for either of these controls is to show status information about your application, not to provide functionality for performing tasks. For example, you can use it to show the number of words in a document or the progress of a printing task. You don’t want to use the StatusStrip as a dumping point for another control to perform printing. Sometimes, though, you can combine tasks. For example, if the StatusStrip shows the status of the Insert key (insert or overtype), it’s just fine to let the user modify the state of the key from the StatusStrip.
Unfortunately, applications today have a general lack of information displayed in the StatusStrip. I’m often left waiting for a background task such as printing to complete before I can move on to the next foreground task. Using a thread to print in the background works fine and lets the user get back to work immediately. However, now you have to inform the user about the progress of the print job. That’s where the StatusStrip comes into play. You can provide the user with status reports about the print job without interrupting foreground work.
The StatusBar was somewhat deficient when it came to functionality. You often ended up jumping through hoops to make it work, and then you usually lacked the right control to provide status information in a useful way. The StatusStrip provides a number of controls that you can use to display information, as shown in Figure 8.
Figure 8 The StatusStrip controls make it easier to display information to the user.
The StatusLabel works just as you expect; you can use it to display messages. The ProgressBar is helpful when you need to tell the use about the progress of a background task such as saving the document or sending it to the printer. Any time you create a background task that the user knows about, you should also consider adding a ProgressBar to provide the user with updates. The DropDownButton and SplitButton are handy for conditional information, such as the status of the Caps Lock key. You can provide the status of this control and the allowable states as part of the menu. As with any other menu, you can also insert Separator, ComboBox, and TextBox controls in addition to the more familiar MenuItem control.