Any application is going to be tied to some runtime required, and you may be able to minimize yours by compiling for a version of .NET that pretty much anyone will have. By now, 2.0 is a good bet. Go to project properties and see if there's a "Target Framework" setting in the "Application" tab. That's what I see for C# 2008 Express. Your VB.NET may be similar since both are .NET languages.
Speaking of C#, it gets my vote as the nicest .NET language to program in. It will have the same problem with requiring .NET to be available as with VB, though. It does have the advantage of being based on a language (Java) originally designed in the 1990s instead of a language (BASIC) designed in the 1960s.
The problem with C++ is that there's no standard GUI, so if you want to write apps with an interface other than the command like, you need to add some sort of framework. Microsoft offers either MFC (the old Win32 framework), native Win32 calls using the Windows OS as your "framework", or you can use a dialect of C++ called "Managed C++" and access the .NET framework.
MFC and Win32 programming are both discouraged by Microsoft for new apps, but both are still supported. For now.
Outside of MS, you could look at either Qt (pronounced "cute") or GTK for free cross-platform GUI frameworks for C++. Plan to do some fiddling around to get them set up for development under Windows, though. And plan to look around for support. I haven't used it yet, but the free Qt Builder IDE looks interesting, since it has the kind of GUI form-building tools that you're probably used to with VB.NET.
Java gets my vote for the nicest language-with-a-GUI. Combined with an IDE like NetBeans or Eclipse, you get all of the graphical form-design tools you need, plus the object code runs on any system (Win, Mac, Linux, Unix, AIX, Solaris, etc.) that has a Java runtime. But, you still need to have a Java Runtime installed on the computer for your apps to run; plus a front-end EXE or script for Windows to launch the app if the computer isn't configured to "do the right thing" when they double-click a .CLASS or .JAR file. This is mostly a problem for Windows. Linux and Mac systems don't have the "Microsoft hates Java, so they cloned it as C#" syndrome and don't seem to have a problem with "do the right thing."