当我尝试在程序中的不同表单之间切换时,我总是会遇到异常。也许你会帮我解决这个问题。这是异常消息:
Control.Invoke 必须用于与在单独线程上创建的控件进行交互
我已将表单附加到非常好的变量上,当我尝试使用 MyForm.Show() 之类的命令时会出现此问题。
当表单未附加到变量时不会发生这种情况,但是我在刷新文本框和内容时遇到了巨大的问题。
希望很快能听到你的声音!
编辑;
我有 4 种不同的形式。当我加载主模块和主窗体时,在 Sub (...) Handles MyBase.Load 我执行以下代码:
在模块中:
Public StartupForm As frmStartup
Public RegularForm As frmRegularUse
Public LoginForm As frmLogin
Public PasswordForm As frmPassword
Public SettingsForm As frmSettings
主要形式:
RegularForm = Me
StartupForm = frmStartup
LoginForm = frmLogin
PasswordForm = frmPassword
SettingsForm = frmSettings
这是我制定的完全控制刷新表单的方法。它是一个带有 Windows CE 的 Motorola Scanner 程序。现在,例如,当我在 LoginForm 中输入正确的密码时,我想切换到 RegularForm。当我尝试使用 RegularForm.Show() 或 RegularForm.ShowDialog 或 RegularForm.BringToFront() 时,出现异常。当我尝试使用 frmRegularUse.Show() 调用表单时,我可以调用表单,但我相信它是在不同的线程中创建的,所以我失去了对它的控制(当我尝试从键盘输入一些东西时,没有回应)。