2016-12-23 14 views
0

所以我有一個程序有81個文本框(我知道這聽起來很瘋狂,但它們在網格中),並且我需要能夠根據值來編輯每個文本框的整數。我的文本框被命名爲textBox1 - textBox81。我還需要爲每個具有以「textBox」開頭的文本框然後1-81計數的i值。我將會有其他的文本框不是這樣命名的,我希望它們不要在這裏被說明。選擇一個基於int值的文本框

for (int i = 1; i <= 81; i++) 
{ 
    textBoxVALUEOFi.Text = "SomeValue"; 
} 

回答

1

如何緊靠這...

for (int i = 1; i <= 81; i++) 
{ 
    Control ctrl = this.Controls["tbx"+i]; 
    if (ctrl != null) 
    { 
     // Do your stuff here 
    } 
} 
+0

太棒了!謝謝。正是我在找什麼。 – ThatGuy

+0

:)然後,你應該更好地將其標記爲已解決。 – Ozesh

0

我覺得你想要做這樣的事情

foreach (Control x in this.Controls) 
{ 
    if (x is TextBox) 
    { 
     ((TextBox)x).Text = "SomeValue"; 
    } 
} 

,或者您也可以嘗試

foreach(TextBox tb in this.Controls.OfType<TextBox>()) 
{ 
    tb.Text = "SomeValue"; 
} 
1
for (int i = 1; i <= 81; i++) 
{  
    this.Controls.Find("textBox" + i, true) = "SomeValue"; 
} 

或者

for (int i = 1; i <= 81; i++) 
{ 
    this.Controls["textBox" + i] = "SomeValue"; 
} 
+0

我想你誤會了,我寫我的問題有點嚴重。我的意思是他們在網格中,但仍然在形式中。它們只是像網格一樣排列,而不是在網格的父控制中。他們是form1的孩子。 – ThatGuy

+0

然後用'this'替換'grid1'。 – Sameer

0

我做了這樣的:

for (int i = 1; i <= 81; i++) 
{  
    Controls.Find("textBox" + i, true)[0].Text = "SomeValue"; 
} 
相關問題