从Windows Form1访问printQueue类

时间:2019-02-26 13:37:41

标签: c# arrays class

我有一个将int和string组成的对象数组,我想在表单的列表框中输出它。对象数组在另一个类Item

是否可以像这样使Form1在类项中识别

还是我必须将结果发送回form1并将其输入到那里的列表框中?

  

分类项

 public void printPQ()
    {
        for (int i = 0; i < numItems; i++)
        {
            //contents += (items.elements[i] == null ? null : items.elements[i].name) + "\n"; 
            lblShowPatient.Text = (items.elements[i].priority + items.elements[i].name);
        }
    }

1 个答案:

答案 0 :(得分:0)

您可以将Form1作为构造函数传递给class(因为我没有看到名称,因此我们将其称为ClassA),这样您就可以以下签名:

public Form1 Form1 {get;set;}

public ClassA(Form1 form1)
{
    Form1 = form1;
}

然后,当从ClassA初始化Form1实例时,您将这样称呼它:

ClassA classA = new ClassA(this); //Where this is the current instance of Form1

这将允许您从类中访问Form1实例的元素。

但是,这似乎与您真正想要编写的方式有些颠倒。我建议将ClassA的{​​{1}}重构为取名为printPQ并返回一个ExportPQ。然后,在调用该方法的List<string>逻辑中,遍历Form1返回的内容并填写ClassA.ExportPQ。这使您的ListBox更加有用,因为您现在可以通过多种UI控件而不只是ClassA上的特定ListBox返回此信息。