簡體   English   中英

如何設置進度條的值

[英]How to set value of progress bar

我已經使用C#Winforms編寫了一個用戶控件。 在用戶控件中,我有三個文本框:

  • txtStartNumber-輸入的類型為:int。
  • txtEndNumber-輸入的類型為:int。
  • txtQuantity-iput類型:int。 (值= txtEndNumber-txtStartNumber)

進度條表示編號。 記錄添加到數據庫中,其總范圍設置為等於txtQuantity。

當一個或多個記錄重復時,進度條將停止。

我的問題是:

  1. 如何設置進度條的初始值?
  2. 如何管理進度條顯示的進度?

我如何將其保存到數據庫:

for (long i = from; i < to; i++)
{
    for (int j = 0; j < (to - from); j++)
    {
        arrCardNum[j] = from + j;
        string r = arrCardNum[j].ToString();
        try
        {
            sp.SaveCards(r, 2, card_Type_ID, SaveDate, 2);
            progressBar1.Value = j;
        }
    }
}

嘗試這個:

private void StartBackgroundWork() {
    if (Application.RenderWithVisualStyles)
        progressBar.Style = ProgressBarStyle.Marquee;
    else {
        progressBar.Style = ProgressBarStyle.Continuous;
        progressBar.Maximum = 100;
        progressBar.Value = 0;
        timer.Enabled = true;
    }
    backgroundWorker.RunWorkerAsync();
}

private void timer_Tick(object sender, EventArgs e) {
    progressBar.Value += 5;
    if (progressBar.Value > 120)
        progressBar.Value = 0;
}

選取框樣式要求啟用VisualStyles,但是它可以連續不斷地滾動而不需要更新。 我將其用於不報告進度的數據庫操作。

這是另一個進度條教程

您不能使用loop通過progressbar進行此操作。 for,while,do ... while循環或計時器中的運行代碼之間存在差異。 循環代碼立即完成,您看不到,而在計時器中可以看到。 即使您嘗試在計數器中放入循環,也不會起作用:

for(int i=a;i<b;++i)
{
    if (cnt < 1000000)
    {
        IncrProgressBar();
        cnt++;
    }
    else
    {
        cnt = 0;
    }
}

如果要使用進度條執行此操作,則必須放入將數據添加到數據庫的計時器OnTick事件代碼,並在此事件中增加進度條的值。 與更改表單組件的其他屬性(文本,大小,...)類似。 如果要查看組件的更改,則必須使用計時器。

要更改值,請使用:

private void timer1_Tick(object sender, EventArgs e)
    {
        progressBar2.Value = progressBar2.Value - 15;
    }

在C#中

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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