"the derived form is not showing when i start debugging"
Well, no, it won't - not unless you specifically tell the system to display an instance of the form.
There are two ways to handle this, and they both need you to know "what goes on" to a certain extent. Start by opening your project in Visual Studio, and look at the Solution Explorer pane. (if you don't have this open by default, open it now and "park it" on thr right hand side of your screen - it's one of the most useful in the system).
Expand your project branch, and you will see a file called "Program.cs" - double click on it and it will open to show you the "Main" method. This is what starts your application, and you will see it contains a line:
Application.Run(new Form1());
This is the line that runs your application and specifies which form to display - a new instance of the Form1 class.
So there are two things you can do:
1) The "Easy Route": Change the
Form1
in the "Run" line to
Form2
2) The "Not So Easy Route":Change the way you handle things: create a new Form2, add your buttons and so forth, then change the Form1 definition to inherit from Form2 instead of Form.
Me? I'd go with the second approach, because it feels more "natural" to me.
And please, change all your names! Don't stick with the Visual Studio default names for things: "Button1" doesn't help much when you read your code; "butCalculate" makes your code much more self documenting - and the same goes for textboxes, labels, and so forth. Get into the habit of using useful names right from the start, and it will save you a lot of time later!