[英]C# object of class in different windows form
如果运行项目,则会显示以下窗口:
然后,我按下按钮autohinzufügen == add car 。 下面是该方法的代码:
private void button1_Click(object sender, EventArgs e)
{
addCarcs window = new addCarcs();
window.Show();
}
现在第二个窗口打开:
我填写了两个字段,然后按了按钮autohinzufügen == add car 。 然后,我创建了class car的新对象。 这里的代码:
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;
}
现在,我再次来到主窗口:
现在,我按下第二个按钮auto anzeigen == show car 。 我想显示添加的汽车,但是如果我在button方法中编写以下代码:
private void showCar_Click(object sender, EventArgs e)
{
myCar.showCar();
}
我收到一个错误:
如何在不同形式之间发送类的已创建对象?
您需要创建一个Property Car MyCar { get;set; }' at the class level. Set its value in the constructor like
Car MyCar { get;set; }' at the class level. Set its value in the constructor like
Car MyCar { get;set; }' at the class level. Set its value in the constructor like
MyCar = new Car() and access the
Car MyCar { get;set; }' at the class level. Set its value in the constructor like
and access the
在需要Car对象的任何地方and access the
MyCar`。
您应该在“创建”两个窗口的类中创建一个成员汽车,以便两种形式都可以“识别”成员汽车,并可以访问其数据。
您可以在这里找到更多信息: https : //msdn.microsoft.com/en-us/library/ms173121.aspx
此处: https : //msdn.microsoft.com/en-us/library/ba0a1yw2.aspx
好吧,您需要执行以下操作:
在您的addCarcs类中添加一个名为addedCar的属性:
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;
}
}
最后,从Main类Form1中访问新添加的Attribute:
private void showCar_Click(object sender, EventArgs e)
{
if(latestAddedCar != null)
latestAddedCar.showCar();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.