I take it that you mean that you want to pass multiple pids, pnames and so on
One way to do it is to define a class holding the individual values, something like
public class myparam {
public string pid { get; set; }
public string pname { get; set; }
public string cid { get; set; }
public string pcost { get; set; }
}
And then pass the objects in a list. So the definition for the Form2 constructor could be
public Form2(System.Collections.Generic.List<myparam> listofparams) { ...