Basically Microsoft didn't put the resources in to making MC++ a first-class .NET language from the start. Note that there wasn't a Windows Forms designer for MC++ in Visual Studio .NET 2002. They are still actively developing MFC and C++, though. They added a Windows Forms designer in 2003 and I would look for continued improvements in the future. I don't forsee either .NET or C# replacing MFC or C++ any time soon.
Until they bring their C++ managed support up to par with C#/VB.NET, though, I would only use MC++ for .NET programming if (1) you have a large C++ code base already and just want to use some .NET Framework or Measurement Studio classes in a few places without rewriting the code (2) you have a definite need for some C++ language feature that is not available in C#, such as templates or multiple inheritance (3) you have some interop needs that aren't met by C# such as using a DLL that contains C++ objects instead of C entry points.
Although MC++ is more flexible and powerful than C#, the price you pay for that flexibility and power is substantially increased complexity. The interop in C# is sufficient for the vast majority of native code libraries and objects you might be using and you aren't faced with the headaches of keeping track of objects on both a managed (garbage collected) heap and an unmanaged heap. In MC++ you also need to keep in mind the type of objects you are using in each line of code because it impacts what you can do. For instance, you still can't have multiple inheritance with a .NET class, but you can with a native class, destruction occurs differently for managed and native types, native types can't always be directly used in the .NET context as you saw with your arrays, etc.
If you intend applications for network deployment, you should also know that it is currently impossible to write secure, verifiable code in MC++.
That is just my opinion. I hope it helps. Good luck with your project.
Tony H
Measurement Studio