Assuming you have access to the instances (and you should, you probably created one of the form instances inside the other) then there are two ways:
1) Create properties in Form1 with getters only, returning a List of the appropriate types:
public List<int> IDs
{
get
{
List<int> results = new List<int>;
results.Add(Entry1IdValue);
results.Add(Entry2IdValue);
results.Add(Entry3IdValue);
results.Add(Entry4IdValue);
return results;
}
}
public List<string> Names
{
get
{
List<string> results = new List<string>;
results.Add(Entry1NameValue);
results.Add(Entry2NameValue);
results.Add(Entry3NameValue);
results.Add(Entry4NAmeValue);
return results;
}
}
And so on.
2) Create a class, each holding one entries worth of information (call it Entry).
public Class Entry
{
public int ID { get; set; }
public string Name { get; set; }
public int NumberOfProduct { get; set; }
public string Target { get; set; }
public int Budget { get; set; }
public Entry()
{
}
}
Then set up a Property in Form1 returning a List<Entry> with again, only a getter.
You then access the data via the Form1 instance and the property name.
I would go with option 2, myself.