C# 从Windows Form1访问printQueue类
我有一个对象数组,可以是int和string,我想在表单的列表框中输出它。对象数组位于另一个类项中 可以这样让Form1在类项目中识别吗 或者我必须将结果发送回form1并将其输入到那里的列表框中吗 类项目C# 从Windows Form1访问printQueue类,c#,arrays,class,C#,Arrays,Class,我有一个对象数组,可以是int和string,我想在表单的列表框中输出它。对象数组位于另一个类项中 可以这样让Form1在类项目中识别吗 或者我必须将结果发送回form1并将其输入到那里的列表框中吗 类项目 public void printPQ() { 对于(int i=0;i
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
formForm1
并调用printPQ()
?
ClassA classA = new ClassA(this); //Where this is the current instance of Form1