0

ラベルA、B、Cのフォームがあります。staticvoidMain()で、次のように言います。

Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Form1 form1 = new Form1();
Application.Run(form1);

Form1コンストラクター呼び出し

InitializeComponent();
updateForm();

ここで、updateFormはリモートマシンからログ((FtpWebRequest)WebRequest)を読み取り、ラベルを適切に更新します。

リモートログファイルは数分ごとに変更されるため、フォームを常に更新したいと思います。

mainメソッドのwhile(true)ループでform1.updateLog()を呼び出そうとしましたが、フォームが更新されません。また、form1.Refresh()が機能していないようです。

ヒントはありますか?ありがとう。

4

1 に答える 1

1

ループでそれを行う場合、おそらくUIスレッドで行います。これは、フォームに再描画するように常に指示しますが、再描画する時間や機会​​を与えないことを意味します(覚えておいてください:それを行うスレッドをブロックしていることに注意してください)。

代わりに、タイマーを使用してそこから更新します。たとえば、100ミリ秒ごとなどです。

于 2012-07-25T15:56:51.350 に答える