I've used C# for a level editor that exports files for my Engine, however I would rather just stay with C++ instead of swapping back and forth.
By "swapping back and forth" do you mean swapping code files back and forth or do you mean the language change?
If by that you mean swapping code files, I would recommend putting them into a .lib or .dll file.
If by that you mean swapping languages, I would recommend using wxWidgets. It is great for making tools and several game companies use it for their internal tools (when using C++).
However, it might be worth learning C#/WPF for building your tools. Some may consider it fast for prototyping and if you are looking to create tools professionally, a lot of studios use C#/WPF for their tools.