私のプログラムでは、WebブラウザコントロールをOAuthに使用しています。それはvk_auth_window
フォームにあります。だからコードで私はvk_auth_window.WebBrowser1.Navigate(vkauthurl)
と呼ぶ。認証に成功すると、私は黙ってトークンを取得しますが、ユーザーが認証されていない場合は、vk_auth_window
というフォームが表示され、ユーザー名とパスワードを入力します。これを確認するには、_DocumentCompleteイベントをキャッチし、正しいURLを確認してください。ユーザーが認証を完了するか、認証フォームを閉じない限り、他のコードは実行されません。 ShowDialog()はトリックですが、WebBrowserコントロールのユーザー名とパスワードフィールドからカーソルを隠すことがあります。 私は変数Dim showform as Boolean=True
を導入し、それを_DocumenCompleteイベントからFalseに設定し、メインコードでは無限ループを使用します。ShowDialog()を使わずにフォームを閉じる方法を教えてください。
While showform
System.Threading.Thread.Sleep(100)
Application.DoEvents()
End While
ただし、スレッドスリープによりユーザー入力が遅くなります。そしてそれらを削除すると、CPUがかなり多く読み込まれます。 フォームを閉じるのを待つ方法がありますか?それは何ですか?
はありません、(VB11まで)がありません。イベントハンドラを使用します。 – SLaks
タイマーの使用を検討しましたか? –