フォームとボタンがあります。ボタンを押すと、2番目のフォームがロードされます。 2番目のフォームには、サイトをロードするWebブラウザがあります。フォームの読み込み中にコンポーネントを更新する方法
これは、2番目の形式は読み込みに数秒かかるということです。だから私はエンドユーザーに伝えるために何かを実装する必要があります、ハングアップ..我々は何かをロードしようとしている。
ボタンにテキスト値クリック更新するだろう最善かつ簡単な方法:私は、フォームをロードした後、ボタンのテキストを変更するコードを持っていたロード中...
...事があり、ラベル変更されませんが、ロードされた2番目のフォームの後に変更されます! < - 私は私の研究を行い、その原因をシングルスレッド化していることを知りましたか?
私がラベルを変更した後にApplication.DoEvents()
を置くと動作しますが、その過剰なものを検索して使用するべきではありませんか?多くのリソースを必要とせずにラベルを更新するには、効率的かつ効果的な方法は何でしょうか?
マイコード:
label1.Text = "Loading..."
Application.DoEvents() 'Without this, label only changes AFTER form completes loading
secondform.Show()
me.hide()
他のスレッドを開始してください... – Codexer
'label1.Refresh'ほとんどのユーザーのように、Webサイトに読み込みに時間がかかることがあるようです。 – Plutonix
これはバックグラウンドで遅くなるウェブサイトの読み込みではありません。 2番目のフォームがペイントするのは非常に高価なものかもしれません。ウィンドウを最小化して復元することで確認してください。ブラウザが単に最初に作成するのは高価なので、2番目のフォームを再作成することで確認できます。 label1.Update()を使用するのは簡単な回避策ですが、システミックな場合はCursor.Current = Cursors.WaitCursorを使用することを検討してください –