【发布时间】:2020-08-14 15:21:10
【问题描述】:
我目前正在开发一个相当简单的 Windows 窗体,它可以让我在文本字段中输入诸如 name 和 number 之类的信息,然后将其添加到列表视图中。该信息是在另一个表单中输入的,我在弄清楚如何从 Form2 访问 Form1 中的listView 时遇到了一些问题。
我发现以下代码可以正常工作
表格1:
private void button1_Click(object sender, System.EventArgs e)
{
Form2._Form1 = this;
Form2 form2 = new Form2();
form2.Show();
}
表格2:
public static Form1 _Form1;
现在,我只想知道两件事。这实际上是做什么的?我必须使用静态吗? 抱歉,如果这是一个非常模糊的问题,只是想知道我实际上在做什么。
【问题讨论】:
-
请学习阅读 C# 语言文档。您的问题确实过于宽泛,但从根本上讲,您似乎在问
static字段是什么。有关static成员和特定领域的广泛概述,请参阅副本。您发布的代码只是将Form2中的static字段设置为当前Form1实例。大概是这样Form2可以访问Form1实例的成员。坦率地说,这是一种可怕的做法……Form2根本不可能直接引用Form1,如果确实需要它,则应该在构造函数中传递它。 -
另请参阅stackoverflow.com/questions/1665533/…,以获取有关如何处理对象间交互的更好建议,使用 Winforms
Form对象作为主要示例(该建议普遍适用,但该问题专门针对 @987654335 @对象)。