[英]How can I assign different elements in an array to different text boxes C#
I have an array with 100 elements that I want to assign to 100 text boxes in a windows form. 我有一个包含100个元素的数组,我想分配给Windows窗体中的100个文本框。 The issue is the array is not sorted in a useful manner so a for loop won't work.
问题是数组未以有用的方式排序,因此for循环将无法工作。
The only thing I can think of is to write 100 lines of code that assign the correct array element to the correct textbox but that seems like a horrible way of doing it. 我唯一想到的就是编写100行代码,将正确的数组元素分配给正确的文本框,但这似乎是一种可怕的方法。
A quick example of the how the array is formatted is below: 下面是如何格式化数组的快速示例:
10 Air Temperature #1, 1 Minute Run Average Celsius Minute 59-60
11 Humidity, 1 Minute Run Average % Minute 59-60
12 Air Temperature #1, 60 Minute Run Average Celsius Minute 00-60
13 Air Temperature #1, Max(1 Minute Run Average) Celsius Minute 00-60
14 Humidity, Max(1 Minute Run Average) % Minute 00-60
15 Air Temperature #1, Min(1 Minute Run Average) Celsius Minute 00-60
16 Humidity, Min(1 Minute Run Average) % Minute 00-60
As you can see, Air Temperature is split up, further down the array are Air Temperature #2 values, but I want all Temperature data to be together. 如您所见,“空气温度”被拆分,在数组的更下方是“空气温度2”值,但我希望所有“温度”数据都在一起。
Create a class which represent your data in one item 创建一个类,在一个项目中代表您的数据
class MeasureData
{
public int Id { get; set; }
public string Description { get; set; }
public string AverageData { get; set; }
public string Unit { get; set; }
public string Minutes{ get; set; }
}
Instead of textboxes use DataGridView
control. 代替文本框,使用
DataGridView
控件。
Create collection of data and add collection as DataSource
to the DataGridView
创建数据集合并将集合作为
DataSource
添加到DataGridView
var data = new MeasureData[]
{
new MeasureData
{
Id = 10,
Description = "Air Temperature #1",
AverageData = "1 Minute Run Average",
Unit = "Celsius",
Minutes = "Minute 59-60"
},
new MeasureData
{
Id = 11,
Description = "Humidity",
AverageData = "1 Minute Run Average",
Unit = "%",
Minutes = "Minute 59-60"
}
// and so on
};
myDataGridView.DataSource = data;
If you want sort data before adding to DataGridView
use LINQ to sort it 如果要在添加到
DataGridView
之前对数据进行排序,请使用LINQ对其进行排序
var sortedData = data.OrderBy(item => item.Id).ToArray();
DataGridView
will generate rows for every item in the array, and columns for every property in the class MeasureData
. DataGridView
将为数组中的每个项目生成行,并为MeasureData
类的每个属性生成列。
If you want to show only some of the properties, then create columns manually with DataGridViewColumn.DataPropertyName = "NameOfThePropertyYouWantToShow"
and remember set DataGridView.AutoGenerateColumns = false
, because by default it is true
如果只想显示某些属性,请使用
DataGridViewColumn.DataPropertyName = "NameOfThePropertyYouWantToShow"
手动创建列,并记住设置DataGridView.AutoGenerateColumns = false
,因为默认情况下为true
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.