我有一個主窗體名爲「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