簡體   English   中英

Windows窗體僅刷新(渲染)按鈕。按下任何其他按鈕時可見。[c#]

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM