It's not difficult, really!
Create an enum in Form2:
public enum FormFunction
{
Add,
Edit,
View
}
Then change the Form2 constructor to accept an instance of the enum:
public Form2(FormFunction function)
{
InitializeComponent();
switch (function)
{
case FormFunction.Add:
...
break;
case FormFunction.Edit:
...
break;
case FormFunction.View:
...
break;
default: throw new ArgumentOutOfRangeException("Unknown FormFunction: " + function);
}
}
And construct it using the new constructor:
Form2 f = new Form2(Form2.FormFunction.Edit);
You can then modify your controls state and visibility as required.