【发布时间】:2015-04-12 02:14:52
【问题描述】:
我有一个名为 Car 的类,它接受参数(字符串构建、字符串制造商、字符串颜色)。我还有一个汽车列表,其中存储了所有汽车。汽车及其数据以表格形式显示。一切正常。我有两种形式,一种是显示汽车的主要形式,另一种是可以添加新车或修改现有汽车的形式。
在第一个表单上,可以右键单击汽车并选择编辑。我正在尝试将所选汽车的实例从第一种形式传递到第二种形式。它需要 1 个参数(Car selectedCar)。但是,我发现很难将实例发送到可以修改构建、制造商、颜色等的第二种形式。我该怎么办?我已经尝试了几个小时,这让我难以置信。
我将非常感谢任何帮助,感谢您的宝贵时间。
编辑:
感谢所有 cmets。这是一些代码,只是对我要完成的工作的更详细说明。
我有两种形式: 主窗体 - 显示汽车及其相应信息。汽车存储在汽车列表中。我有一个 Cars 类,它需要构建、制造商和汽车的字符串。当前已设置属性。可以在这里选择一辆车,稍后进行编辑。或添加新表单。
** 添加和编辑表单 ** - 如果在主表单上单击了“添加新车”按钮,则此表单允许添加新汽车,它具有构建、制造商和颜色的文本字段。提交此表单后,数据将发送回主表单,然后将其添加到汽车列表中。
(这就是我正在寻求帮助的内容)- 如果用户选择汽车并单击编辑,则会显示“添加和编辑”表单,并且文本字段会填充相应的数据,这些数据已经存在于“汽车”列表中对于每辆特定的汽车,所以......建造、制造商和颜色。
在主窗体上,我需要将选定的汽车(分配给 _SelectedCar)发送到添加和编辑窗体,以填充文本字段,以便对其进行编辑。
代码: (这是使用 1 个参数启动 CarForm 时运行的代码,即从 MainForm 存储的 Car。
public partial class CarForm : Form
{
Car storedCar;
bool editMode;
public CarForm(Car storedCar):this()
{
this.storedCar = storedCar;
this.Text = "Edit Car";
editMode = true;
carBuildText.Text = storedCar.Build;
carManufacturerText.Text = storedCar.Manufacturer;
carColour.Text = storedCar.Colour;
}
}
在 MainForm 中,当点击编辑按钮时,当前代码运行,但是它不起作用。选定的特定汽车分配给 _storedCar
private void editCar_Click(object sender, EventArgs e)
{
CarForm carForm = new CarForm(_storedCar)
}
所以_StoredCar,拥有关于汽车的所有信息,它的构造、制造商和颜色。所以我只是试图通过使用汽车数据启动表单来传递它,然后从“添加和编辑表单”访问数据。
我能够从“添加和编辑”表单添加一辆新车,并将其传递回主表单,但我正在努力从主车填充“添加汽车”表单。
很抱歉这篇冗长的帖子。
【问题讨论】:
-
是的,这是可能的,我们应该如何提供帮助?
-
WinForms 中没有什么特别的东西可以阻止你这样做 - 只是传递实例。或者向我们展示您在代码中的尝试。
-
这很简单,听起来您已经完成了大部分工作。如果代码,请发布相关部分并描述您尝试过的内容以及为什么它不起作用。
-
肯定贴一些代码。
-
@TheodorosChatzigiannakis 我已经发布了一些代码,很抱歉它冗长。