【发布时间】:2013-11-19 17:22:57
【问题描述】:
我有 2 个表格:Form1 和 Form2。
在 Form1 中,我通过单击 Button1 在新线程中打开 Form2。
我想设置 Form2 的标题,但我不知道如何以及是否有可能。这是来自 Form1 的代码,Form2 只是一个空表单:
Public Class Form1
Dim TH As New Threading.Thread(AddressOf FormShow)
Private Shared Sub FormShow()
Dim FF As New Form2
FF.Show()
Do While FF.Visible
Threading.Thread.Sleep(100)
Application.DoEvents()
Loop
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
TH.Start()
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
'How to change the Form2 title?
'I need something like : TH.Form2.Text="NewTitle"?
End Sub
End Class
如果我启动代码并单击 Button1,Form2 将打开。但是,当我在 Form1 上按 Button2 时,如何更改 Form2 中的窗口标题?有任何想法吗?谢谢。
【问题讨论】:
-
为什么在不同的线程中需要 Form2?你在这里解决什么问题?一般来说,跨线程访问表单会导致比其价值更多的问题......
-
我的应用程序基本上有 2 个线程。线程 1 = 带有“停止”按钮的表单。线程 2 = CPU 密集型计算。因此,如果我单击“停止”上的表单,整个应用程序将退出。我在这里需要的是在进程之间获取或设置一些数据。如果有更好的方法我会做的。
-
正确的做法是将WORK(不是Form)移到不同的线程上。搜索 BackgroundWorker() 控件,您将获得十亿个示例。
-
所以你描述了你想要做的任务。您要解决的问题是什么?
-
我不知道 - 问题部分是与我一起工作的疯狂教授的任务。他会在我的软件中编写自己的计算脚本。我的软件会将代码转换为 exe 并使用线程运行它。
标签: vb.net multithreading