【问题标题】:Data dependency in classes类中的数据依赖
【发布时间】:2014-10-25 10:00:57
【问题描述】:

我为我的问题准备了一张图片,如下所示。

现在我会告诉你我想要什么。如您所见,我有三种形式。

  • Form1 从类中获取一些数据(如 int、字符串、结构、数组 - 没关系)
  • Form1 打开 Form2
  • Form2 打开 Form3

现在我想从 Form3 访问 Form1 中的数据。这是我的问题:如何创建这些形式的对象。我很难在它们之间获得正确的数据依赖关系。 我没有代码,因为我只创建了一个像 Dim f2 As Form2 = New Form2() 这样的新表单实例,然后从 Form2:Dim f3 As Form3 = New Form3() 然后在 Form3 中我这样做:Dim f1 As Form1 = New Form1() 而我无权访问 Form1 中的数据。

【问题讨论】:

  • 班级可以负责这一切。与表单“从”类“获取数据”不同,类可以创建表单、显示表单并将所需数据推送到表单。当需要 form2 时,它也由类创建、显示和管理....等表单最好作为用户输入沙箱而不是程序控制元素

标签: .net vb.net winforms forms class


【解决方案1】:

您可以覆盖 Form2Form3 的构造函数以获取参数 - 具体而言,您可以创建一个包含来自 Form1 的数据的数组,然后将该数组传递给 Form2Form3

这是通过在 Form2Form3 后面的代码中创建一个 Public Sub New 方法来完成的,其签名包含您要传递的数据类型。

您需要将传递过来的数据分配给构造函数中的私有变量,这样您就可以在新表单上使用其他方法引用它。

【讨论】:

  • 只是添加。您可能希望在 Form2 和 Form3 的类级别声明私有变量,然后使用传递给重写的构造函数的值来设置它们。这将使它们可用于 Form2 和 Form3 中的其他方法。
  • @ChrisG 非常正确。我以前在表单设计中使用过这种方法。我会编辑它。
  • 您对此有何看法?在Form1 中:Dim f2 As Form2 和在构造函数中:f2 = New Form2(Me)。接下来在Form2 中:Dim f1 As Form1 和构造函数中(它接受称为表单的 Form1 类型的参数):f1 = form。在Form3 中:Dim f2 As Form2 和构造函数中(也接受称为表单的 Form2 类型的参数):f2 = form。然后我可以通过在Form3:f2.f1.data 中使用它来访问。这个怎么样,对吗?
猜你喜欢
  • 1970-01-01
  • 2019-03-12
  • 2011-04-19
  • 2012-01-25
  • 2021-11-02
  • 1970-01-01
  • 1970-01-01
  • 2014-07-20
  • 2018-09-02
相关资源
最近更新 更多