C# 从Windows Form1访问printQueue类

C# 从Windows Form1访问printQueue类,c#,arrays,class,C#,Arrays,Class,我有一个对象数组,可以是int和string,我想在表单的列表框中输出它。对象数组位于另一个类项中 可以这样让Form1在类项目中识别吗 或者我必须将结果发送回form1并将其输入到那里的列表框中吗 类项目 public void printPQ() { 对于(int i=0;i

我有一个对象数组,可以是int和string,我想在表单的列表框中输出它。对象数组位于另一个类项中

可以这样让Form1在类项目中识别吗

或者我必须将结果发送回form1并将其输入到那里的列表框中吗

类项目

public void printPQ()
{
对于(int i=0;i
您可以将您的
表单1
作为构造函数传递给您的
(因为我没有看到名称,我们将其称为
ClassA
),这样您就有了一个具有以下签名的构造函数:

public Form1 Form1 {get;set;}

public ClassA(Form1 form1)
{
    Form1 = form1;
}
然后,当从
Form1
初始化
ClassA
实例时,您可以这样调用它:

ClassA classA = new ClassA(this); //Where this is the current instance of Form1
这将允许您从类中访问
Form1
实例的元素


然而,这似乎有点颠倒,你真的想写它。我建议重构
ClassA
printPQ
名为
ExportPQ
,并返回
列表。然后在调用该方法的
Form1
逻辑中,迭代从
ClassA.ExportPQ
返回的内容,并填写
列表框。这使得您的
ClassA
更加有用,因为您现在有了一种方法,可以在多个UI控件中返回此信息,而不仅仅是
Form1
上的此特定
列表框

这是可行的,我可以在Form1中访问ClassA,但我想用另一种方式访问ClassA中的Form1。在“然而”之前写的任何东西都允许您访问
ClassA中的
Form1
。您当前如何实例化
ClassA
form
Form1
并调用
printPQ()
ClassA classA = new ClassA(this); //Where this is the current instance of Form1