Ja man kann C++ unter Linux programieren, mit der Hilfe von g++. .Net Programme laufen mit Mono.
Entwicklungsumgebungen wie Visual C++ gibt es auch, aber es gibt keine Editoren für Windows Forms! Wenn du Windows Forms Programme unter Linux laufen lassen willst, musst du sie unter Windows machen und dann di exe Datei auf Linux mit Mono starten.
Was ncoh anzumerken ist, mono ist derzeit glaube ich nur auf den Stand von .net 2.0 und nicht 3.0 oder 3.5! Man kann seine WIndows Programme testen ob sie unter Mono laufen mit: http://mono-project.com/MoMA
Ein Proting Winforms Guide: http://mono-project.com/Guide:_Porting_Winforms_Applications
Des weiteren würde ich empfehlen unter Linux nicht WinForms als Toolkit zu nehmen, sondern Qt oder Gtk, die laufen auch unter Windows!