My 29 things that need to be added/fixed/improved...

1. Make the visual designer faster. It should be as fast as VB6 was to open them and to move controls around. (i.e. It shouldn't take 45 seconds to display moderately complex forms in the designer (try duplicating the Outlook Edit Contact window, and you'll see what I mean))
2. Fix the label control so that if it's right aligned and you type text in it, it expands to the left instead of the right. (VB6 did this correctly, why not VS.net?)
3. Support XP Themes correctly on ALL controls (including the hideous tab control that doesn't theme correctly except (sort of) when the tabs are aligned to the top). This means that the control paint class needs to be updated to support this correctly.
4. Fix the tab control problem where the tabs get out of order randomly. (this still isn't fixed in VS.net 2003)
5. Enable full support for Theming on buttons including Image + text with theme support.
6. Enable 32bit color with antialiasing on all images. (i.e. I should be able to load in a 32 bit icon with antialiasing on any control and have it display correctly instead of the black crap I currently get)
7. Improve the Localization support to allow you to specify that any item can be pulled from a central resource file. This would be usefull for icons that you use repeatedly throughout the software and text that is constantly being repeated (i.e. Save). Allow that file to store all languages in it as cols on the row with the data if it is language specific.
8. Give us a real resource editor that is native to the IDE and incredibly powerful.
9. Fix the bug in Winforms that prevents the Activate/Enter event from firing when an owned (but not modal) form closes. If you have a form that is owned by an MDI child form, and it closese, the mdi child doesn't receive an Activate event. It should. (it shouldn't if you do a ShowDialog)
10. DataAdapter command generation needs to get smarter. The Primary Key should not be in the update command becuase it loses the record if it's changed anyway. Further, it needs to not be there because if you use uniqueidentifiers and have an ntext field to be updated it will fail if the primary key is included in the update. It should also pick up the default values automatically from the database and convert them when possible for when it generates the dataset. At the worst, when regening a dataset it should leave the default values that you've already entered alone.
11. Checkboxes need to be fixed once and for all. I am not sure why they can't be bound correctly still. VB3 had this problem (and probably before) but if you bind a check box to a data source here's how it should work: If it triple state: 0 = false, 1 = true, null = indeterminate. if in boolean mode: 0 = false, 1 = true, null = false. This is really simple and obvious but doesn't seem to have sunk in at MS after all of these years. Please fix this one right away!
12. DateTime needs a .Empty property like most other types have (i.e. GUID) and it needs to map to Null when bound to a datasource (i.e. the dateCombo)
13. The RTF control needs to be expanded to support plain text, RTF and HTML with complete editing services the same way that the RTF control currently has. RTF is great, but the reality is that the rest of the world uses HTML including MS.
14. There should be a built in spell checker al la Max OS X 10.2. It should recognize HTML tags and skip them too.
15. References on a project need to be fixed to support relative paths. It's hard to share a project around without getting these screwed up, which screws up the debugger causing it to error back to the Application.Run() line in your app instead of stopping on the error.
16. Multi-Line balloon tooltip to replace the current one. If XP has it, so should we! (and it should allow us to display it even if the control is disabled)
17. C# needs intellisense on enums etc. Ie. checkBox.Checked = should give me the enum values that are possible. I shoudln't have to go hunting or typing large amounts. I understand that VB.net 2003 does this, why wasn't it moved to C# too?
18. Form inherritence needs to be fixed. It's a disaster right now.
19. The server explorer needs to be able to directly edit properties on tables, databases and fields directly. Right now you can't do it, thus you have to either use a 3rd party app or Enterprise manager which some of us might not have.
20. The install creator needs to support Installation Types: Typical, Custom, Full etc. Really simple feature, but without it it makes the install program in Vs.net useless to most of us, thus forcing us to one of the other ones like Wise and Installshield (all really bad)
21. The install creator needs to allow us to edit the tables in the installer directly and add CustomActions intelligently.
22. All controls need an editlock or readonly al la the textbox control so that we can lock them without disabling them.
23. The tab control needs to allow each tab to be visible or not (i.e. enable the visible property) so that we don't have to remove, and readd all the time (nasty)).
24. The tab control needs a mode whre the tabs are all not there, just the pages themselves so that you can create wizards easily.
25. The button control needs to be fixed so that when you set the text align = LeftCenter and the image align = Left Center the text is to the immediate right of the image, not overlapping. If you want overlap, set them both to middle center or something.
26. A Line control (enough said)
27. The validate/ing property on tab pages needs to be fixed so that it fires when a control outside the tab control gets the focus. Right now if you have changes on a tab control, it will only validate if you switch to another tab. If you click in a save button or something outside the control, it will not fire the validating event even though it has lost the focus.
28. The closing event needs to be fixed so that it has the reason it is being closed al la VB6. It's sad that this didn't get in in the first place. (yes I know you can override wndProc but it's ugly and won't work on Linux under Mono)
29. Transparent background should be transparent background, not draw the background based on the color in the top left corner of the control/form that is hosting the current control. This is why the tab page isn't themed btw. Because if you do theme it, and set your labels transparent, it isn't really transparent, it is the color in the top left of the tab page, not what is really underneath the control instead of the grandient.

Yes, I know that a lot of these are addressed by 3rd party controls and bug fixes have also been made the same way, but they are all just things that plain make sense and should be there (like having a browser built into the OS). The bugs need to be fixed right away, and the rest should be added ASAP. 3rd party controls are for things that combine a lot of functionality and add more support for things. What I'm asking for is bug fixes and basic functionality that is exposed in the OS all over the place.

Just my two cents! :)

James Hancock

[7205 byte] By [codefund.com] at [2007-12-16]
# 1
3. That'd be nice :)
5. see 3.
6. i'd like to see better support for this..but i understand alot of this is the underlying comctl still not supporting it correctly...png format seems to work a bit better however..
12. yep.
13. as long as it doesnt cause way too much overhead, sure..
16. That'd be pretty cool, i guess :)
23. Aye, this one's asked for all over the place as well..
24. .ShowTabs Property, anyone?
26. Michael Harsh has supplied us with this..this one isnt hard, i wouldnt complain too much
29. aye.
codefund.com at 2007-9-8 > top of Msdn Tech,Windows Forms,Windows Forms General...