The question sounds like you want to lean the minimum as soon as possible. And get to work. This is not how it works. You need to learn how to do the job, not so much how to get it. You need to have the very different attitude: you need to be eager to learn more and more. And you need to understand why.
What exactly to learn? It depends, no one can tell you exactly, you should decide. Only… if you are going to learn
just C#, you will learn nothing which can make you a person who can work reasonably well, not even as a C# developer. You need to learn more, a lot more. And not one language, a number of them. It's too very typical situation when a mono-language developer does not understand something very important: programming.
Let's take those "all controls in Visual Stidio 2008". You learn them and what, thinking "what should I do if we migrate to 2010?", right? This is not how a decent worker thinks. Such developer don't even think about such things but will try one's best to learn the instrument in great detail, even if the use of it is only suggested. Decent workers sharpen their tools and always want to get the very best. Not the coolest and most recent, but the best as the work itself is concerned. You think the knowledge of "all controls in Visual Stidio 2008" as of some hassle, but, first, this is a miserably small chunk of knowledge compared to what people really need to know, and, second, a real developer happily and eagerly learn them all driven by the strong motivation: "
what else can I get to improve my work?". See the difference?
For the encouraging note, please read this article:
Peter Norvig, Teach Yourself Programming in Ten Years,
http://norvig.com/21-days.html[
^].
Good luck,
—SA