If I understand the question correctly, you try to manipulate objects in Form2 from outside the form. If this the case, I would suggest not doing so.
Instead create a new method to Form2, for example DisableProductClick. This method should contain the relevant logic that changes how objects in Form2 behave. From the form1 when you find existing form2, just like you call BringToFront, you would call your new method. So the code in form1 would be something like
form 2 myfrm = Application.OpenForms["form2"] as form2 ;
if (myfrm != null)
{
if (myfrm.WindowState == FormWindowState.Minimized)
{
myfrm.WindowState = FormWindowState.Normal;
}
myfrm.Activate();
myfrm.BringToFront();
myfrm.DisableProductClick();
...
Also note that there probably isn't a space in the form name so that should be corrected