我正在开发一个野外农场软件。共有3种形式: form1 , form2 , form3 。
form1 只是一个欢迎页面然后当您继续 form2 时,它是一个数据集合,其中输入从文本框中收集,然后在背景中相乘并显示在< EM> form3
答案 0 :(得分:0)
原本可怕的方法是你可以拥有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; }
}
其中datatype是string,int,decimal或您使用的任何值类型,column_n_fieldname与您对象中合理的内容相关!
在form2上你可以拥有一个私有财产:
private List<modelname> capturedData;
在构造函数中 - 新建它:
public Form2()
{
InitializeComponent();
capturedData = new List<modelname>();
}
当用户点击form3时,您可以将文本框中的数据填充到模型中 - &gt;然后将模型传递给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...
}