2012-07-25 51 views
0

我有標籤A,B和C的形式在靜態無效的主要()問題,我說:與刷新形式

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()似乎不起作用。

任何提示? 謝謝。

回答

1

當你在一個循環中這樣做時,最有可能在UI線程上。這意味着你不斷地告訴表單重新繪製,但不要給它時間或機會這樣做(請記住:你正在阻塞它將會這樣做的線程)。

而是使用定時器並從那裏刷新,例如,每100毫秒左右。

+0

+1對於計時器的想法。使用計時器,只需更新標籤的文本屬性,不要重新加載整個表格 – JMK 2012-07-25 16:00:34

+0

感謝您的輸入。不過,我很困惑。我應該使用我的主要方法中的計時器調用form1.Refresh()? – Krzysiek 2012-07-25 16:19:45

+0

我猜你有更多的問題比形式刷新問題,例如有關Windows Forms應用程序如何粗略工作的基本知識。 – Joey 2012-07-25 16:35:57