1

我正在尝试从在 form2 上运行的任务中放置在 form1 上的文本框和复选框访问数据。

当我访问以 form1 的子项启动的任务中的文本框和复选框时,一切正常!但是,如果我尝试在 form2 的任务中使用控件中的数据,我只会得到文本框的默认文本(空)和默认的选中状态

以下 testsub 适用于 form1 并显示了正确的文本。

Public Sub testsub()
    Dim testTask As New Task(Sub() MsgBox(TextBox1.Text))
    testTask.Start()
End Sub

在form2我试过这个

Public Sub testsub()
    Dim testTask As New Task(Sub() MsgBox(Form1.TextBox1.Text))
    testTask.Start()
End Sub

这不起作用,只显示一个空文本框。好像form2的任务中没有form1的标准实例?!那正确吗?

那么如何在form2的任务中访问form1的控制数据呢?

4

1 回答 1

0

您需要在 Form2 可以访问的地方声明您的 Form1 实例。

尝试添加一个模块:

Module Mod1
    Public f1 as Form1

End Module

然后在 Form1 Load 事件中,将 f1 设置为 Form1 的实例

f1 = Me

加载 Form1 后,您可以在 Form2 中使用您的 sub,将通用 Form1 替换为特定的 f1

Public Sub testsub()
    Dim testTask As New Task(Sub() MsgBox(f1.TextBox1.Text))
    testTask.Start()
End Sub
于 2014-08-14T15:55:27.773 回答