2016-03-07 54 views
0

我有幾個進度條,它們是在運行時單擊按鈕時創建的。在Windows應用程序中顯示動態生成的進度條的進度

private void button1_Click(object sender, EventArgs e) 
{ 
    int count=0; 
    for(var item in items) 
    { 
     count++; 
     ProgressBar pBar = new ProgressBar(); 
     pBar.Name = "progressBar1_"+count; 
     pBar.Width = 200; 
     pBar.Height = 15; 
     pBar.Minimum = 1; 
     pBar.Maximum = 100; 
     pBar.Value = 1; 
     Panel1.Controls.Add(pBar); 

如何訪問動態創建的進度條以顯示進度?

"progressBar1_"+count.PerformStep();// This doesnt work 
+0

您需要更具體一點......我們應該如何知道您要在哪個進度條上顯示進度? –

+0

你如何更新進度? –

+0

我編輯了這個問題..希望我的問題現在很清楚 – Madonna10

回答

0

在你的循環每次打電話

ProgressBar pBar = new ProgressBar(); 

您創建一個進度條的新實例。

一種選擇是在列表或字典中記住此實例。

類似的東西:

List<string> items = new List<string>() { "item" }; 

Dictionary<string, ProgressBar> progressBars = new Dictionary<string, ProgressBar>(); 

private void button1_Click(object sender, EventArgs e) 
{ 
    int count=0; 
    foreach(var item in items) 
    { 
     count++; 
     ProgressBar pBar = new ProgressBar(); 
     pBar.Name = "progressBar_" + count; 
     pBar.Width = 200; 
     pBar.Height = 15; 
     pBar.Minimum = 1; 
     pBar.Maximum = 100; 
     pBar.Value = 1; 
     panel1.Controls.Add(pBar); 

     progressBars.Add(pBar.Name, pBar); 
    } 
} 

private void button2_Click(object sender, EventArgs e) 
{ 
    progressBars["progressBar_1"].PerformStep(); 
} 

第二個選擇是尋找這種情況下在你的面板的控制。

List<string> items = new List<string>() { "item" }; 

private void button1_Click(object sender, EventArgs e) 
{ 
    int count=0; 
    foreach(var item in items) 
    { 
     count++; 
     ProgressBar pBar = new ProgressBar(); 
     pBar.Name = "progressBar_" + count; 
     pBar.Width = 200; 
     pBar.Height = 15; 
     pBar.Minimum = 1; 
     pBar.Maximum = 100; 
     pBar.Value = 1; 
     panel1.Controls.Add(pBar); 

     progressBars.Add(pBar.Name, pBar); 
    } 
} 

private void button3_Click(object sender, EventArgs e) 
{ 
    (panel1.Controls.Find("progressBar_1", false).Single() as ProgressBar).PerformStep(); 
} 
+0

謝謝......我嘗試了第一個選項,它工作完美... – Madonna10