【发布时间】:2017-12-30 19:04:28
【问题描述】:
首先,为什么是表单类?
但现在是主要问题。
我有:
Form1.vb
Module1.vb
表单上有一个文本框、进度条、标签等。
我希望能够从模块 1 更改表单上这些对象的属性,但我似乎无法访问它们。
表格上的这些东西是对象,对吧?那么它们有一定的范围吗?我该如何改变它?
等等,但根据我的解决方案浏览器,这些东西是类的属性??
但是当我运行程序时表单会出现??是不是必须实例化表单类才能创建 form1 对象?
没关系,但这里有一个来自 module1 的 sn-p
Sub WriteObjectsToCSV()
Dim props As PropertyInfo() = MyCompanies(1).GetType().GetProperties()
Dim sw As StreamWriter =
My.Computer.FileSystem.OpenTextFileWriter(SaveAs, False)
Dim csv As New CsvHelper.CsvWriter(sw)
csv.WriteHeader(Of Company)()
csv.NextRecord()
For Each company In MyCompanies
'>>> want to write to my text box and change my progress bar here <<<
For Each prop In props
csv.WriteField(prop.GetValue(company))
Next
csv.NextRecord()
Next
End Sub
【问题讨论】:
-
表单是类,因为它是 21 世纪,它是一个面向对象的世界。并非图片中的所有内容都是对象 - 有些是方法。不清楚
MyCompanies(1)是什么,但您可以将其传递给模块方法。根据MyCompanies(1)是什么,该代码看起来是一个自制的序列化程序。您可能想查看许多可用的序列化方法。 -
表单被实例化 - VB App 框架为您完成。哪种形式取决于您在项目属性中设置为
Startup Object的内容。您也可以通过Sub Main中的代码作为Application.Run(New Form1)执行此操作。如果MyCompanies是数据 - 而不是将其传递给该方法,您还可以将方法移动到数据所在的位置(表单)。现有的序列化程序值得研究。将来尝试在每个帖子中问一个问题 - 这是要求教程的边界