2014-07-22 46 views
0

我現在在C#中,其中包含了十幾個toolstrips寫一個程序,每一個包含toolstriplabel:用於對象及其屬性?

toolstriplabel1 toolstriplabel2 toolstriplabel3 。 。 。 toolstriplabel11 toolstriplabel12

我想用「for」循環更改每個文本,我該怎麼做? 我可以用「如果」與其他變量來滿足這一點,但我想避免打「如果」我必須寫。 如何使用tooltriplabel的文本屬性使用「for」循環? 我使用此代碼嘗試,它不工作:

for (int r = 0; r < NumGraphs; r++) 
    { 
     toolStripLabel+"i".text=... 
    } 
+0

而這恰好是哪種語言? JS? –

+0

是的,忘記了,對不起,C# – Hitman2847

+0

是的,它是窗體形式 – Hitman2847

回答

0

不熟悉C#,但你可以創建這些toolStrips的數組。在for循環中,第012次迭代設置數組中i th元素的text屬性。

for (int i = 0; i < NumGraphs; i++) { 
     toolStripLabel[i].text="YOUR TEXT"; 
    } 
+0

好吧,這很容易,但它並沒有出現在我的腦海,謝謝,但這也需要所有12個元素單獨申報,是不是有任何方式直接使用在物體上? – Hitman2847

+0

對不起,我不熟悉C#。 –

+0

thanx無論如何,至少我知道如何間接做 – Hitman2847

0

在控件集合上使用LINQ怎麼樣?

var labels = this.Controls.Cast<Control>() 
       .OfType<ToolStripLabel>() 
       .Where(l => l.Name.Contains("toolstriplabel")); 

然後,你可以簡單地通過foreach循環遍歷它們。

foreach (var label in labels) { label.Text = ""; } 
1

你可以簡單地嘗試這樣的事情,

 foreach (Control ctr in this.Controls) 
     { 
      if (ctr is ToolStripLabel) 
      { 
       // ur code 
      } 
     } 
+1

我發現使用'var label = ctr作爲ToolStripLabel;'後面跟着'if(ctr!= null){...}更愉快。無論如何,我都不需要直接將類型轉換爲類型,因爲您需要稍後再進行操作。 –

+0

這將工作,如果我想申請一個單一的價值,而不是如果我希望他們分別指定 – Hitman2847

+0

@ Hitman2847這可能是由錯誤的方式提問。現在我看到你在問如何在沒有一堆if語句的情況下改變他們的文本,但實際上你似乎只是在循環中遇到麻煩。你應該更好地表達你的問題,以便清楚你需要解決的所有問題。 –

相關問題