Click here to Skip to main content
Click here to Skip to main content

Status List

By , 16 May 2007
 

Screenshot - demo.jpg

Introduction

This project is inspired by "Status List - Vista Style" by Shapour.

There are few reasons for this project and article. One is that the original project is written in VB.NET, and I am a C# guy (whilst I do fluently read VB and many other languages, I can't stand writing in it). Secondly, I found a number of limitations in the original control which I decided to fix and improve.

Improvements

The list of improvements as follows:

  • StatusItem object became a descendant of Control, meaning it inherits all the richness of its Father. The main reason for that change - the item paints itself, instead of being painted by the StatusList, which is more OOP way. This way it also opens a potential for other control to be put inside (I haven't tested this assumption, it actually occured to me while I was writing the article).
  • I didn't like the fact that if I have a few items in the list I have to scroll and the heading is scrolled off. I wanted to have items in a container, meaning that the heading will always stay visible. There is an option to hide the heading if you don't need it.
  • I personally find it more pleasing to the eye that all of the items are of the same width. Whilst in the designer you can move/resize individual items, they will be (re)laid out by the control automatically.
  • I have added events StatusItemAdded, StatusItemRemoved and StatusItemStatusChanged which provide you with enough flexibility to track the state of the list and individual items.

Using the code

Using the code should be quite straightforward, reference the library (or drop it on your toolbox if you wish), and then add the control to you form. All of the exposed properties through the property grid should be sufficient to set the control.

Points of Interest

One of the trickiest bits was adding a 3D-border to the items container. For more details please have a look in StatusItemPane.cs.

The funny thing is that after I went through the trouble of researching and spending a good few hours on getting it right, I looked at the resulting UI and didn't quite like it. So by default the border is off.

There are number of extra improvements which can be made (no limits to perfection). One is that StatusItem visual properties (like image, forecolor, etc.) may be moved off to a separate style object. But I guess I will leave it up to you, or may fix it in future (if there is enough interest in the control).

I would like to be able to click on the control and be able to scroll (if it is in scrollable mode)using the mouse wheel. However, to date I didn't have time to research that direction. If anyone has a solution I would like to hear it from you.

History

2007-04-23: version 1.0.0.0.

Credits

"Thank you" goes to Shapour for the original work.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

About the Author

Igor Velikorossov
Software Developer (Senior)
Australia Australia
Member
No Biography provided

Sign Up to vote   Poor Excellent
Add a reason or comment to your vote: x
Votes of 3 or less require a comment

Comments and Discussions

 
Hint: For improved responsiveness ensure Javascript is enabled and choose 'Normal' from the Layout dropdown and hit 'Update'.
You must Sign In to use this message board.
Search this forum  
    Spacing  Noise  Layout  Per page   
QuestionLicencememberJulian-w30 Dec '07 - 4:22 
GeneralRe: LicencememberIgor Velikorossov1 Jan '08 - 0:33 
GeneralRe: LicencememberJulian-w1 Jan '08 - 1:49 
QuestionAutoscroll and adding items during runtimememberOKA13327 Dec '07 - 4:20 
GeneralRe: Autoscroll and adding items during runtimememberIgor Velikorossov27 Dec '07 - 13:22 
QuestionHow to AddRangememberOKA1335 Oct '07 - 4:46 
AnswerRe: How to AddRangememberIgor Velikorossov10 Oct '07 - 14:12 
GeneralBrilliant...memberGismow23 May '07 - 23:11 
GeneralRe: Brilliant...memberIgor Velikorossov24 May '07 - 15:57 
GeneralVery Well DonememberSmith55js22 May '07 - 15:58 
GeneralRe: Very Well DonememberIgor Velikorossov24 May '07 - 15:57 
GeneralNicely Donemembermerlin9811 May '07 - 4:34 
GeneralRe: Nicely DonememberIgor Velikorossov1 May '07 - 13:29 
GeneralNicememberNenad L.23 Apr '07 - 22:40 
GeneralRe: NicememberIgor Velikorossov24 Apr '07 - 17:26 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Permalink | Advertise | Privacy | Mobile
Web01 | 2.6.130516.1 | Last Updated 16 May 2007
Article Copyright 2007 by Igor Velikorossov
Everything else Copyright © CodeProject, 1999-2013
Terms of Use
Layout: fixed | fluid