When you say c#, are you using WPF or Windows Forms.
Here is an example of achieving a 1 Window Program in WPF.
I have found that the best way to change a Windows container without calling new windows is to use a Usercontrol.
<usercontrol horizontalalignment="Stretch" verticalalignment="Stretch" name="currentContent" usercontrol=""></usercontrol>
This way, you can easily change the content of the user control by changing the usercontrols content property.
WipView1 userControl = new WipView1();
currentContent.Content = userControl;
As for adding a sound to your buttons, The poster of Solution 1 is spot on!