OK, so there are a million threads on this already, and I've read most of them, but I was after some advice for a specific project I'll be starting after I've finished exams, and my current game.
I'm going to make a clone of an awesome old game I used to play in primary school- The Incredible Machine. You might have played it, it's basically a puzzle-based Rube Goldberg type game. I'm planning to write the engine and make a prototype level, and get that working. Then I'll create a level editor to make it easy and fast to make lots of levels, and probably release that with the game so people can make their own levels if they want. Understand that I realise this is a big project, and I'm way off even beginning anything that will be in the actual game, as the next paragraph will reveal.

Anyway, I'm not sure what language to go with for this. At the moment I'm considering VB.net, C#, or C++, none of which I know. Yeah, I realise I should know the language before I try to make a brilliant game, which is why I want to be sure about the language before I start learning it and ultimately make a game.

So from all the reading I've been doing, here is how I see it in terms of pros and cons:
VB.net
Pros
It's similar to VB6, which I'm reasonable at, so it's easiest at this stage.
It's the focus of this forum.
The syntax is easiest, with words rather than symbols.
Cons
It's not as fast as C++.
It's not what the pros use.
It's not something I see myself using long-term: The mechatronics engineering/computer science course I start at uni next year focuses on C at first, then moves on to C++ in later years(it's a 5 year double degree). I have no way of knowing what I'll use long, long term though.

C#
Pros
It's closer to what I'll have to use next year (C).
As far as I'm aware, it's more prevalent in games programming.
Cons
I'd have to learn it from scratch.
It's not as fast as C++
If I'm going to learn a new language which is C-derived, I may as well go C++

For both VB.net or C#, I'm not sure whether having to use managed DirectX (if that's what I decide on) would be a Pro or a Con. Advice?

C++
Pros
It's closest to what I'll use next year (C).
It's very fast.
It's what the pros use.
Cons
I'd need considerable effort in learning it before I could make a game
The syntax is harder, although I'm sure I could pick it up without too much difficulty.

Wow, this post is getting long.
I also need to decide on a graphics library. From what I've read, they are both just as good as each other in terms of performance, and it's really a matter of preference in most cases. Again, I've never used either, so this is something I'll have to learn before I actually start the game. This is how I see it at the moment. (Oh and this is 2D by the way)

DirectX
Pros
It includes everything I'll need- user input, sound etc. Not just graphics.
It's more OO.
MSDN.
Cons
Harder to learn?
No portability.

OpenGL
Pros
Portability.
Easier to learn?
Good documentation- coloured books.
I'm told it works well with any language.
Cons
Would need extra add ins for things other than graphics.
Not as OO, although I don't think it's a huge issue.

Right, well anyone who's still reading must be insane or determined.
Basically I'm after 2 things:
Any specific advice as to what would be the best choices for what I'm going to attempt to make.
An indication of whether what I've written for each language and library is accurate, or if I've been misled.