多个TextBox到数组

时间:2017-08-29 19:31:49

标签: c# arrays windows winforms

我的问题可能有一个简单的解决方案,但我只是没有抓住它。 在这种情况下,我希望通过用户在文本框等中输入的几个特征来登记车辆,并存储在阵列中,以便他可以查找车辆或改变所述车辆的某些特征。

分两步打破:

  1. 首先,用户从numericupdown中选择一个值并单击一个按钮,从而定义正在使用的数组的大小。我用以下代码做了,我不知道它是否100%正确:
  2. int aSize = Convert.ToInt32(numericUpDown1.Value);
    int[] Viaturas;
    Viaturas = new int[aSize];
    
    1. 现在,用户有几个TextBox,DateTimePickers和Comboboxes,他输入了车辆的特征。然后他点击一个按钮,所有信息都存储在一个数组中,每个车辆都存储了它的特征,这样他就可以查看了。
    2. 假设第一点是好的,第二点是我挣扎的地方,我不知道如何编码。有什么想法吗?

      提前致谢!

2 个答案:

答案 0 :(得分:1)

听起来你想要创建一个对象来存储所有数据。

public class Vehicle {
   public Vehicle(string make...) {
       Make = make;
       ...
   }
   public string Make;
   public string Model;
   public string Year;
   public string Color;
...
}

然后您可以使用List来存储所有车辆,它将为您处理阵列的大小:

List<Vehicle> Vehicles = new List<Vehicle>();
Vehicles.Add(new Vehicle(textboxMake.Text, ...));

并访问它们:

textboxMake.Text = Vehicles[0].Make;

答案 1 :(得分:0)

我同意bwoogie - 为此使用强类型对象,如果可以,请使用列表。此示例显示了当用户填写表单并单击按钮时如何添加新车辆。它有样本数组或列表。请注意,数组和列表都可以传递到相同的方法,该方法需要一组车辆:

// you should be able to use a list...
List<Vehicle> list = new List<Vehicle>();

// or if you must use an array
Vehicle[] array; // initialize it like you do in your example
int arrayPosition = 0;

private void button1_Click(object sender, EventArgs e)
{
    // create an instance of a strongly typed object using your textboxes, etc.
    Vehicle v = new Vehicle();
    v.Make = textBoxMake.Text;
    v.PurchaseDate = dtpickerPurchaseDate.Value;
    v.Engine = comboBoxEngine.SelectedText;

    // add the strongly typed object to a list
    list.Add(v);

    // or if you must use an array
    array[arrayPosition] = v;
    arrayPosition++;

    // you can call a method that expects an array even if you are using a list
    DoStuffWithTheArray(list.ToArray());

    // or if you must use an array
    DoStuffWithTheArray(array);
}

private void DoStuffWithTheArray(Vehicle[] array)
{
    // expects an array of vehicles, but you can call it with a list or an array.
}