G. Man asked about locking toolbars in an earlier post:
My own personal complaint is the inability to lock toolbars. I cant tell you how often I accidentally drag a toolbar somewhere and hose up the IDE. I have to "reset window layout" which resets everything. And I have seen some developers not as particular as me who have completely trashed their toolbars and dont seem to care. They have their menu bar BELOW about 7 different toolbars, most of which are just blank space anyway...
I passed this question along to Jason Weber (jweber), who is responsible for this area of the product. He had some interesting comments about some differences between VS and other applications that have locking toolbars. G. Man still has an interesting suggestion, it's just that the definition of "locking" might have to be large enough to accomodate the dynamism that Jason describes. "Locking" would have to mean something like "Don't let me mess this up -- I like it the way it is. But you, you [IDE], you go do your thing."
I’ve seen this request a couple times. It’s a great solution in IE or applications with a small number of toolbars that are fixed. But it doesn’t scale well to Visual Studio. We have about 60 toolbars of which 50 are dynamically tied to ui contexts. As you move throughout the IDE we’re constantly shifting the toolbars around based on your selection, editor, ui hierarchy and window layout. For example when you’re on a WinForm you see the designer commandbar, when you view the code behind it’s swapped with an editor commandbar, when you view the class diagram for that code it’s replaced with the Whitehorse commandbar, etc. Most customers don’t even notice the shifting.
Thanks for the thoughtful suggestion, G. Man.
By the way, VS 2005's support for importing and exporting profiles might be helpful with this, as they should enable you to configure your IDE the way you like it, export the settings to a profile, and then import/apply them if you accidentally mess things up. I realize this isn't perfect, but I expect it will be much better than the "reset window layout" option you describe above. I haven't tried this yet. If I give it a go, I'll post again.
Happy C# coding!