我有一个主窗体名为“add.cs”包含这个表单上的用户信息(它的名字,年龄等),我拖动一个按钮来添加用户的孩子信息(他们的名字,血液组,出生日期等),其单击事件打开一个表单“addchild.cs”,其中拖动了两个按钮之一来存储数据,另一个用于在运行时添加控件。在运行时添加控件我已经使用这个编码如何将大量参数传递给构造函数?
private void button1_Click(object sender, EventArgs e)
{
try
{
childrenCount++;
Label lblchild = new Label();
lblchild.BorderStyle = BorderStyle.Fixed3D;
lblchild.Location = new Point(20, (childrenCount - 1) * 50);
lblchild.Size = new System.Drawing.Size(50, 20);
lblchild.Text = "Child " + (childrenCount - 1);
TextBox tName = new TextBox(); //TextBox for the name
tName.BorderStyle = BorderStyle.Fixed3D;
tName.Location = new Point(120, (childrenCount - 1) * 50);
tName.Size = new System.Drawing.Size(135, 60);
tName.Text = "";
DateTimePicker calendar = new DateTimePicker();
//MonthCalendar calendar = new MonthCalendar(); //Calendar to choose the birth date
calendar.Location = new Point(310, (childrenCount - 1) * 50);
ComboBox bloodGroup = new ComboBox(); //ComboBox for the blood group
bloodGroup.Location = new Point(650, (childrenCount - 1) * 50);
bloodGroup.Size = new System.Drawing.Size(135, 60);
for (Enum.Blood_Group l = Enum.Blood_Group.O_negative; l <= Enum.Blood_Group.AB_positive; l++)
{
bloodGroup.Items.Add(l);
}
this.panel1.Controls.Add(lblchild);
this.panel1.Controls.Add(tName);
this.panel1.Controls.Add(calendar);
this.panel1.Controls.Add(bloodGroup);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
现在我已经创建了一个名为“Childrendata”用于存储的“addchild.cs”添加的控件值单独外部类。这些类包含我想要存储的所有数据。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Jain_milan
{
class Childrendata
{
string childname, childblood, childbirth;
public string Childbirth
{
get { return childbirth; }
set { childbirth = value; }
}
public string Childblood
{
get { return childblood; }
set { childblood = value; }
}
public string Childname
{
get { return childname; }
set { childname = value; }
}
}
}
然后在提交按钮上addchild.cs单击事件我已经使用这个代码的控制数据存储到外部类的所谓Childdata.cs的变量。
private void submitbtn_Click(object sender, EventArgs e)
{
//Checks the values
try
{
string message = "";
foreach (Control c in this.Controls)
{ //loop throught the elements of the form
if (c.GetType() == typeof(Panel))
{ //check if the control is a Panel
//Get the values from the input fields and add it to the message string
Panel panel1 = (Panel)c;
Label lblchild = (Label)(c.Controls[0]);
TextBox tName = (TextBox)(c.Controls[1]);
DateTimePicker calendar = (DateTimePicker)(c.Controls[2]);
ComboBox bloodGroup = (ComboBox)(c.Controls[3]);
//add to class
Childrendata childdata=new Childrendata();
childdata.Childname = tName.Text;
childdata.Childblood= bloodGroup.Text;
childdata.Childbirth=calendar.Text;
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
现在,我怎么做的构造以阵列或任何其他东西作为参数和存储的所有值,我可以调用此构造到我的主命名页面add.cs。所以上的按钮的单击事件在add.cs我可以通过使用这样的编码将这些值存储到数据库中。
Childrendata cd = new Childremdata();
Children child = new Children();
child.Namechild = cd.Childname;
child.Bloodchild = cd.Childblood;
child.Dobchild = cd.Childbirth;
if (new InsertAction().Insertchildren(child))
{
MessageBox.Show(" Children Insertion Happen ");
}
else
{
MessageBox.Show(" Children Insertion does not Happen ");
}
请告诉我确切的例子,因为我已经尝试了很多来解决这个问题,但没有输出! 请帮助请请请
澄清你在问什么。你想能够使用类似列表或数组的东西来实例化你的类? – Nomad101 2013-05-05 14:15:23
没有其实我想存储在子窗体中的所有控件的值到父窗体 – VJain 2013-05-05 14:40:00