I don't think you really have any options that will support everything you describe. There is a CheckedListBox, but no control over the colors. You might could write enough code to make the intrinsic NET DataGrid control do what you want to do, but it would take a lot of work. What you really need for this sounds like probably a 3rd party grid, like ComponentOne (the old Apex True Grids) - they generally give you a lot more control than you have over Microsoft controls. This would have been a lot easier to do in VB6 because you could create your own custom row control ocx and use the DataRepeater to make it into a grid. VB.NET does not provide a DataRepeater but you may still be able to import the DataRepeater into a NET project and do it that way.