プログラムで異なるフォームを切り替えようとすると、常に例外が発生します。多分あなたは私がこの問題を解決するのを手伝ってくれるでしょう. 例外メッセージは次のとおりです。
別のスレッドで作成されたコントロールと対話するには、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() でフォームを呼び出そうとすると、フォームを呼び出すことができますが、別のスレッドで作成されていると思われるため、制御を失います (キーボードから何かを入力しようとすると、応答はありません)。