[英]Use a string to call a variable in C#
我試圖使用循環來編輯多個文本框的數據,但我無法弄清楚如何轉換其內容是我的框的名稱的字符串來訪問每個框的文本元素。
private void reset_Click(object sender, EventArgs e)
{
string cell;
for(int i = 0; i < 9; i++)
{
for (int j = 0; j < 9; j++)
{
cell = "c" + Convert.ToChar(i) + Convert.ToChar(j);
cell.text = "";
}
}
我的文本框命名為“c00,c01,.... c87,c88”,這是我的“cell”變量在每次迭代過程中的內容,但上面的代碼不起作用,因為它試圖訪問“ text“字符串的元素,顯然沒有意義。
顯然我可以單獨清除每個框的內容,但由於我將有多個事件將改變文本框的內容,因此能夠實現循環來實現這一目標是理想的,而不是每個事件有81行。
使用數組要好得多。 像這樣的2D數組:
TextBox[,] textboxes = ...
private void reset_Click(object sender, EventArgs e)
{
for(int i = 0; i < textboxes.GetLength(0); i++)
{
for (int j = 0; j < textboxes.GetLength(1); j++)
{
textboxes[i,j].Text = "";
}
}
}
或者像這樣的鋸齒狀數組:
TextBox[][] textboxes = ...
private void reset_Click(object sender, EventArgs e)
{
for(int i = 0; i < textboxes.Length; i++)
{
for (int j = 0; j < textboxes[i].Length; j++)
{
textboxes[i][j].Text = "";
}
}
}
我建議你使用二維數組TextBox。 這將使您的生活更輕松。
無論如何試試這個this.Controls.Find()
你應該能夠實現它。
TextBox txtBox = this.Controls.Select( c => c.Name == cell );
txtBox.Text = "";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.