Media player like rating DataGridView column - Mark Rideout's Blog - Site Home - MSDN Blogs

Media player like rating DataGridView column

Media player like rating DataGridView column

  • Comments 1

One request that I've seen a few times is to have a column in the DataGridView display a rating like stars similar to what you would find in Media Player. I've posted this over at the MSDN forums, but I thought having it in the blog would also be good.

Basically, this column/cell (called RatingColumn/RatingCell) derives from the DataGridViewImageColumn/ImageCell. This is done obviously since I am displaying an image (this is the formatted value/type), but the cell relies on integer data (0 through 5 for each star), so I change the ValueType for the column to be of type integer.

Since an integer cannot be converted to an image by magic, I override the GetFormattedValue and convert the integer value to the proper image. I use a simple array of images so the values 0 through 5 correctly index into the array. (I ended up creating 12 images in total - 6 images that go from 0 to 5 stars highlighted and another set of images that have a hot-highlight that I use for mouse over: and .) I also default the new row to the value of 3 (for three stars). Lastly, I override the Paint method to identify the star that the mouse is over. The logic to identify which star the mouse is over is a bit conviluted, but it works.

Anyway, here is the link to the unsupported sample (in c#): http://www.windowsforms.net/blogs/markrideout/RatingCustomDGVColumn.zip

One important note --  I did not add keyboard accessibility, only mouse.

-mark

  • Hi,

    Fantastic control!

    I'm fairly new to c# though and can't get it to work when bound to a datasource.

    Any advice?

    Thanks,

    Cal

Page 1 of 1 (1 items)
Leave a Comment
  • Please add 1 and 7 and type the answer here:
  • Post