【问题标题】:How to pass a string variable data from Form2 to Form1?如何将字符串变量数据从 Form2 传递到 Form1?
【发布时间】:2011-05-11 14:15:41
【问题描述】:
这是一个从文本文件中读取学生数据并将其显示在列表框(Form1)中的程序。从那里您可以通过单击显示另一个表单(Form2)的“添加”按钮将新学生添加到文本文件,然后将新学生数据输入到相应的文本框中。之后您可以按“添加”按钮(Form2),但添加学生(Form2)窗口再次出现,所有输入的数据都消失了,如果我再次将新学生信息放入文本框中并单击“添加”,则程序跳回到 Form1 和一个消息框假设说明添加到文本文件中的内容,但除了空的列表框项之外没有添加任何内容。
【问题讨论】:
标签:
.net
vb.net
string
forms
.net-3.5
【解决方案1】:
我认为你的作业倒过来了;您正在将文本框值设置为字符串数组的元素,这些元素都为 null,因为它们从未设置过。先试试看。
您可以做的另一件事是将数据数组的实例放在 Form1 上,并通过引用传递给 Form2 的构造函数。这样一来,Form2 的工作就是收集数据,并不需要真正了解 Form1 的实现细节;它所需要的只是一个字符串数组(或者最好是具有命名属性的类)来存储其数据。然后 Form1 可以检查 Form2 的 DialogResult,如果它是“OK”,则 Form1 知道它传递给 Form2 的数组中有数据,它可以处理自己的 ListView 的操作和写入文件。
【解决方案2】:
通常 Form1 实例化 Form2 并显示它。您可以在 Form2 上添加一个公共属性 getter,其中将包含必要的信息,并且 Form1 可以在需要时从 Form2 的实例中获取它。
【解决方案3】:
在第二个表单上创建属性,然后在第一个表单上检查属性以获取值。