As I'm already in a hurry to continue with the main project of mine, I'll have some people from here test the control more throughoutly than I'm able to. I just need a quick test for whatever comes into mind, running only for a day or two (which is why I'm not posting this to project requests).
The quick factsheet:
should never crash under IDE (subclassed safely)
should support Unicode (except under 9X/ME)
should add and remove items and clear the list
should be able to set style to checked/standard through code
should set columns automatically in AutoColumn mode when resized
should be able to set the colors freely
No, it doesn't support sorting, multiselect or databinding. The Unicode support is done by converting strings internally to UTF8, so the control is able to store the strings in the native listbox instead of using a separate array. The bad thing is that it needs to convert between UTF8 and UTF16 when drawing and when accessed, but it shouldn't be too bad of a problem (by default listbox does this between ANSI and UTF16).
First bug/issue found: the subclasser doesn't like SetWindowPos if it is used to the UserControl Parent element. Unfortunatenaly that goes out of my experience level, so I can't solve what I should do to fix the issue or if it can be fixed. At the moment trying out general workarounds (I'm trying to have a form to stay on top).
Issue solved: SetWindowPos can be called in Form_Load before anything is done to the listbox by code. Earlier I had the code in Form_Activate. Issue not solved: it still causes a crash randomly; especially if something is done to the listbox.
(for mods: don't worry, next time I find something I'll just edit this message)
Weird. I haven't had that kind of bug since I made a fix to the code I used as a sample (by Aaron Young). In his code there was a small leak due to improper placement of DeleteObject. I guess I should go through every single API command with thought and using a sample that I know to work as a comparison.
Can you reproduce the error? Exactly when it happens? It does sound a bit different to what I had before (all checkboxes disappeared permanently).