将数组发送到控件

问题描述 投票:0回答:1

因此,我是一个开始在学校学习C#的学生,我目前的项目之一涉及将可扩展的,类方法绑定的数组输出到窗体上的控件,而我遇到了一个令人困惑的问题。我已经将适当的访问修饰符设置为public,之前我已成功将这种格式用于可扩展数组,并且我的程序未显示任何构建错误,但不会输出数据。

我可以看到我的逻辑错误是我的数组声明的一部分,在过去的置换中似乎并没有扩大,尽管我目前的策略(称为Expand()方法)直接增加了索引noobIdentifier,是类中的通用变量,而不是实际方法。

//Create Form Instance
AttendanceReport report = new AttendanceReport();

//Expand Array
Expand();

//Create Array
int SIZE = noobIdentifier + 1;
Noob[] info = new Noob[SIZE];

//Assign Data to Array
info[noobIdentifier].s_class = Class;
info[noobIdentifier].s_name = Name;
info[noobIdentifier].s_id = ID;
info[noobIdentifier].s_password = Password;
info[noobIdentifier].s_formerDistrict = District;
info[noobIdentifier].s_grade = Grade;
info[noobIdentifier].s_country = Country;
info[noobIdentifier].index = SIZE;

它也可以是同一方法中我实际输出块的一部分。我已经考虑过尝试在列表框输出中使用For循环而不是Foreach,尽管后者看起来更为简洁。

//Ouput Gateway
if (output == true)
{
    //Temp Holder
    int i;

    //Output items to Attendance Report Listbox
    foreach (Noob noob in info)
    {
        //Send Index to string
        string indexer = noob.index.ToString();

        //Convert to Int
        i = int.Parse(indexer);

        report.newStudentSelectionBox.Items.Add(i);
    }
}

//Output Text Gateway
if (textOutput > 0)
{
    //Declare Index
    int n = textOutput - 1;

    report.classOutput.Text = info[n].s_class;
    report.nameOutput.Text = info[n].s_name;
    report.idOutput.Text = info[n].s_id.ToString();
    report.gradeOutput.Text = info[n].s_grade.ToString();
    report.districtOutput.Text = info[n].s_formerDistrict;
    report.countryOutput.Text = info[n].s_country;
}

outputtextOutput都是方法输入,textOutput被声明为int,因此可以用作对数组放置的直接引用。

c# arrays controls output
1个回答
0
投票

尝试一下

Noob类中:

public class Noob
{
   //Your Definition...
   public override string ToString() => this.Name;
}

像这样修改循环:

//Output items to Attendance Report Listbox
foreach (Noob noob in info)
{
    report.newStudentSelectionBox.Items.Add(noob);
}
© www.soinside.com 2019 - 2024. All rights reserved.