如何使用其他模块中的表单对象执行操作?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用其他模块中的表单对象执行操作?相关的知识,希望对你有一定的参考价值。
首先,为什么是表格类?
但现在谈到主要问题。
我有:
Form1.vb
Module1.vb
在表单上有一个文本框,进度条,标签等。
我希望能够从module1更改我的表单上的这些对象的属性,但我似乎无法访问它们。
表格上的这些东西都是对象,对吧?那么他们有一定的范围吗?我该怎么改变它?
等等,但根据我的解决方案资源管理器,这些东西是一个类的属性?
但是当我运行程序时,表单出现了?是否必须实例化表单类以便创建form1对象?
这并不重要,但这是一个来自module1的片段
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
答案
表单是类,因为它们是动态创建的。您可以多次实例化并打开相同的表单类,并同时打开实例。
VB自动实例化主窗体。
您可以通过My.Application.OpenForms
访问打开的表单。主要形式始终是第一个
Dim mainForm As Form1
mainForm = DirectCast(My.Application.OpenForms(0), Form1)
mainForm.txtOutput.Text = "hello"
为了能够从外部访问表单的控件,必须将它们声明为Public
或Internal
。您可以从属性窗口(Modifiers
属性)更改访问修饰符。
相反,您也可以在表单中声明一个属性,以使文本可以在外部访问
Public Property OutputText() As String
Get
Return txtOutput.Text
End Get
Set(ByVal value As String)
txtOutput.Text = value
End Set
End Property
现在您可以在模块中编写它
mainForm.OutputText = "hello"
以上是关于如何使用其他模块中的表单对象执行操作?的主要内容,如果未能解决你的问题,请参考以下文章
python 使用requests模块, 如何模拟进行登录并执行之后的操作?
如何使用导航架构组件修复动态功能模块中片段的发布版本中的ClassNotFoundException?
用 php 中的文件和其他输入处理发布的 formData 对象