Because you are creating new form by using new keyword so all of your previous data is lost.
You can have private objects of the forms you want to show hide. Before displaying them check the specific object is null or not. If it is null then create a new form with new keyword else just show the form or hide it. In this way you will not loose data. for example
public class MainForm
{
private TFX_Script o_TFX_Script;
click_function()
{
if (o_TFX_Script == null)
{
o_TFX_Script = new TFX_Script();
o_TFX_Script.Show();
}
else
{
o_TFX_Script.Show();
}
}
}