[英]How to set value of progress bar
我已經使用C#Winforms編寫了一個用戶控件。 在用戶控件中,我有三個文本框:
進度條表示編號。 記錄添加到數據庫中,其總范圍設置為等於txtQuantity。
當一個或多個記錄重復時,進度條將停止。
我的問題是:
我如何將其保存到數據庫:
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.