在C#即時試圖做一個小遊戲類型的程序,即時通訊嘗試使一個加載欄,使用進度欄和文本使用標籤,例如進度欄1 - 25,我想在標籤的文本更新而酒吧,下面有一個例子:
C#標籤文本不更新,而進度條值是
private void StartLoading_Click(object sender, EventArgs e)
{
MainProgressBar.Maximum = 25;
int P = 0;
while (P < 25)
{
// Delay
System.Threading.Thread.Sleep(130);
// Increase Progress
P++;
// Set Progress Bar Value
MainProgressBar.Value = P;
// Set Text Above Progress Bar
LoadingText.Text = P + "/25";
}
}
詩篇。我不希望一些巨大的代碼,我希望它是簡單的這樣
嘗試搜索,不要屏蔽UI線程,使用背景工作。是的,這是「龐大的代碼」,但它是必要的。 – CodeCaster
在GUI線程中更新控件時,大多數控件都不會處理消息(因爲它們僅在執行結束後才收到消息)。你應該使用工作線程。不推薦第二種方法(處理消息)。進度條具有不同的處理系統,因此它可以像預期的那樣工作,但它大多是圖形控件中的一個例外。 – Julo
在視圖模型中創建兩個屬性,一個用於最大值,另一個用於當前值,然後綁定到視圖中的兩個值。 – LordWilmore