![](/img/trans.png)
[英]How to use timer in c# windows form to move elevator up and down only when button is pressed?
[英]Windows Form only refreshes(rerenders) button.visible when any other button is pressed.[c#]
我有一個名為“ Main”的主窗體,該窗體根據啟用的按鈕動態調整自身大小。 在Main內部,我還有一個稱為Updater的函數。 Updater將文件中的所有信息重新加載到內存中,進行少量處理,然后“應該”刷新窗口。 這是令人耳目一新的部分:
Application.DoEvents();
this.Refresh();
然后,我有另一個表單是配置頁。 只需打開相同的數據文件,讓用戶更改內容並將其保存回去即可。 然后,它會自行關閉並運行Updater,該更新程序應僅使用新信息刷新Main表單。 這是調用代碼:
Main main = new Main();
main.UpdaterCaller();
現在了解新信息是啟用和禁用按鈕並對其進行定位。 我知道這一切都是在我運行它時起作用的,我放了一段控制台代碼,讓我知道它已經運行了。 但是,當我關閉配置窗口時,控制台會顯示寫在Updater()中的消息,但不會顯示Main上的更改。 只有當我單擊任何其他消息時,才會通過新按鈕立即刷新。
抱歉,如果我不夠具體或沒有使用正確的術語。 謝謝您的幫助!
您的問題是配置頁面正在創建Main的新實例並對其進行更新。 該實例實際上是不可見的,因為它從未顯示過。
我只需要通過ShowDialog()顯示配置頁面,然后在關閉時讓Main更新即可:
// ... this code is running in form Main ...
frmConfiguration config = new frmConfiguration();
config.ShowDialog(); // code here STOPS until "config" is closed
this.UpdaterCaller();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.