2015-08-09 22 views
1

如果我跑我的項目,我得到這個窗口:在不同的窗口窗體類的C#對象

enter image description here

然後我按下按鈕汽車hinzufügen == 新增汽車。在這裏,方法的代碼:

private void button1_Click(object sender, EventArgs e) 
{ 
    addCarcs window = new addCarcs(); 
    window.Show(); 
} 

現在第二個窗口打開:

enter image description here

我填寫這兩個字段,然後按下按鈕汽車hinzufügen == 新增汽車。 然後,我創建了一個類汽車的新對象。下面的代碼:

private void button1_Click(object sender, EventArgs e) 
{ 
    if((kennzeichen.Text != "") && (automarke.Text != "")) 
    { 
     car myCar = new car(); 
     myCar.addCar(kennzeichen.Text, automarke.Text); 
     this.Close(); 
    } 
} 

這裏是類的代碼:

class car 
{ 

    public car() 
    { 
     this.carMark = ""; 
     this.carMark = ""; 
    } 

    public void addCar(string carMark, string carBrand) 
    { 
     this.carMark = carMark; 
     this.carBrand = carBrand; 
     carNumber++; 
    } 

    public string showCar() 
    { 
     return string.Format(
      "Automarke: {0} --- Autokennzeichen {1}", this.carBrand, this.carMark); 
    } 

    private string carMark; 
    private string carBrand; 
    static int carNumber; 
} 

現在我的主窗口再次降臨:

enter image description here

現在我按第二個按鈕auto anzeigen == show car。我想說明的加車,但如果我寫這個代碼在按鈕方法:

private void showCar_Click(object sender, EventArgs e) 
{ 
    myCar.showCar(); 
} 

我得到一個錯誤:

enter image description here

如何發送所創建的對象的一類不同形式之間?

+2

創建場'汽車_myCar'和值分配給本 – Backs

回答

2

你需要創建一個屬性Car MyCar { get;set; }' at the class level. Set its value in the constructor like MyCar = new Car()and access the MyCar`無論你需要Car對象。

0

那麼,你需要做到以下幾點:

添加一個名爲addedCar財產addCarcs類別:

public class addCarcs : Form 
{ 
    public car addedCar { set; get; } 
} 

latestAddedCar一個屬性添加到Form1類:

public class Form1 : Form 
{ 
    public car latestAddedCar { set; get; } 
} 

更改您除了邏輯到ShowDialog的

private void button1_Click(object sender, EventArgs e) 
{ 
    addCarcs window = new addCarcs(); 
    DialogResult dResult = window.ShowDialog(); 

    if (dResult == System.Windows.Forms.DialogResult.OK) 
    { 
     latestAddedCar = window.addedCar; 
    } 
} 

更改您的數據錄入提交邏輯,以便:

private void button2_Click(object sender, EventArgs e) 
{ 
    if ((kennzeichen.Text != "") && (automarke.Text != "")) 
    { 
     car myCar = new car(); 
     myCar.addCar(kennzeichen.Text, automarke.Text); 
     this.DialogResult = System.Windows.Forms.DialogResult.OK; 
    } 
} 

最後,訪問從主類新增加的屬性Form1中

private void showCar_Click(object sender, EventArgs e) 
{ 
    if(latestAddedCar != null) 
     latestAddedCar.showCar(); 
}