我是 VB 和 .Net 的新手,我有一项任务无法继续。
- 我在 screen1 加载时启动一个线程。然后用户转到screen2。
- 在 screen2 上,线程仍在运行。当用户在 screen2 上执行操作(比如点击)时,它将触发线程访问 screen2 上的元素
- 屏幕 2 中的元素是动态创建的,而不是在 IDE 中设计的。
所以本质上,在一个表单上创建的线程需要访问另一个表单上动态创建的表单元素。
如果我的问题太简单,请见谅。如果不清楚,请告诉我,我会改写。
注意:我所说的元素基本上是流布局面板内的图片框。
在此先感谢所有帮助都热切期待(现在咬指甲)并非常感谢。
编辑
假设在仪表板屏幕中启动了一个名为 ctThread 的线程
ctThread.start()
该线程无休止地运行,等待触发事件。
与此同时,用户进入了一个名为 QuizScreen 的屏幕,在这个屏幕(表单)上,我必须更新一些我知道名称的动态创建的元素。
因此,当等待的 ctThread(侦听器线程)时机成熟时,它将调用下面的子程序。
子
public sub changeComputerStatus(ByVal node)
Dim flowpanel As FlowLayoutPanel = CType(QuizScreen.FlowLayoutPanel1.Controls("flow_" + node), FlowLayoutPanel)
Dim pictControl As PictureBox = CType(flowpanel.Controls("pict_" + node), PictureBox)
pictControl.Image = System.Drawing.Image.FromFile(Application.StartupPath & "\images\application-on.png")
end sub
这里节点不断变化。这就是我如何区分我创建的每个控件。
注意:这个线程是在一个名为dashboardscreen的屏幕中启动的,用户现在在另一个屏幕QuizScreen上。
我在上面给出的 sub 的第一行运行并且没有返回到流程面板。因此,当它转到下一行时,它不能使用空作为参考。因此出现上述错误。