我需要更新动态创建的 Form2 的列表框。假设在我必须更新这个 ListBox 的情况下(当然在 Form1 中)我没有这个 Form2 的引用所以我不能调用 UpdateList 方法(不,我不能让它静态) .
我什至不知道是否打开了 Form2,可能是也可能不是。
你有什么建议?
有没有办法循环遍历Form2的所有open istances?
代码示例:
//Form1
public void event()
{
//UPDATE FORM2 LISTBOX
}
//SOMEWHERE IN FORM1
Form2 runTime = new Form2();
//Form2
public void UpdateList()
{
//UPDATE LISTBOX
}
最佳答案
我不确定你到底想实现什么。但在我看来,您只需遍历打开的表单集合即可:
var formsList = Application.OpenForms.OfType<Form2>();
listBox.Items.AddRange(formsList.Select(f=>f.Text).ToArray());
此行将为您提供应用程序中所有打开的 Form2 实例的 IEnumerable。您可能希望使用自己的字符串表示形式(而不是上面代码片段中使用的表单标题)
关于c# - 我如何遍历特定表单的所有打开实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4646705/