最糟糕的做法是,您可以在 Form3 上拥有 14 种不同的面向公众的属性。
public string textboxValue1;
public string textboxValue2;
public string textboxValue3;
etc...
然后,当您新建 Form3 时,您将可以访问这些并以这种方式传递数据。
所以:
Form3 form3 = new Form3();
form3.textboxValue1 = fieldValue1;
form3.textboxValue2 = fieldValue2;
form3.textboxValue3 = fieldValue3;
etc..
form3.ShowModal();
form3.Dispose();
理想情况下,您应该使用业务对象/模型。
您已经提到了 14 行和 4 列,因此您的模型可能看起来像这样:
public class modelname
{
public datatype column1fieldname { get; set; }
public datatype column2fieldname { get; set; }
public datatype column3fieldname { get; set; }
public datatype column4fieldname { get; set; }
}
其中数据类型是 string、int、decimal 或您使用的任何值类型,并且 column_n_fieldname 与您的对象中的某些内容相关!
在 form2 上,您可以拥有私有财产:
private List<modelname> capturedData;
在构造函数中 - 新建它:
public Form2()
{
InitializeComponent();
capturedData = new List<modelname>();
}
当用户点击 form3 时,您可以将文本框中的数据填充到模型中 -> 然后将模型传递给 form3 以执行任何您想要的操作。
在 form2 上,您可能有几种方法,例如:
private void CollectData()
{
capturedData.Clear();
AddRowData(yourrow1column1value, yourrow1column2value, yourrow1column3value, yourrow1column4value); // Row 1
AddRowData(yourrow2column1value, yourrow2column2value, yourrow2column3value, yourrow2column4value); // Row 2
// etc...
}
private void AddRowData(datatype column1data, datatype column2data, datatype column3data, datatype column4data)
{
capturedData.Add(new modelname() { column1fieldname = column1data, column2fieldname = column2data, column3fieldname = column3data, column4fieldname = column4data});
}
Form3 的构造函数可能是:
public Form3(List<modelname> capturedData)
{
InitializeComponent();
// Then whatever you want to do with it...
}