Okay, there is a lot of misinformation about the .EnableVisualStyles method here. First of all, no, Windows does not offer Xp styles on Windows 2000, even if you call EnableVisualStyles. Windows only offers Xp styles in Xp. Like DiverDan said, you need to use custom controls, or something other than OS or .NET rendered controls (maybe you can just make owner drawn buttons....). If the user
is using Windows Xp (regardless of which OS you are
developing in), EnableVisualStyles will work JUST FINE. You just need to know when and how to use it. NOT after InitializeComponents. NOT in the Form.Load event handler. It must be called before ANY controls are created, preferably in Sub Main. Add this into your main form's code:
Visual Basic:
Public Shared Sub Main
Application.EnableVisualStyles() 'Xp styles, LIKE MAGIC!
Application.DoEvents() 'EnableVisualStyles bugs gone, LIKE MAGIC!
Application.Run (New FrmMain) '<--Replace FrmMain with the name of your main form class
End Sub
If you already have a public sub main just insert the first two lines from the sub main shown above into your sub main. I have never had any problems with EnableVisualStyles. Maybe if you are subclassing the windows controls or directly handling the windows messages it could change some behavior that could cause you problems. Most likely not though.
Give it a whirl. If exceptions start getting thrown it is easy enough to fix, just remove the five lines of code, no worries. Keep in mind that you won't see any difference since you are using Windows 2000. Any of your users running Windows Xp
will see the difference.
As far as Icons go, I draw my own ARGB icons in photoshop and save them with a plugin called IconFactory (IconFactory is not free).
[Edit]A manifest would certainly also work, but it requires that the additional .Manifest file be present in the folder that the exe is in. The "Visual Studio .NET 2003 Combined Collection" help files include a good example.[/Edit]