[英]c# change textbox name in code
我只是想知道這樣的事情是否可能:
for(int i = 0; i < 7; i++)
{
textbox + i + .text = aString;
}
我想更改一段代碼以在多個文本框上工作,而不必鍵入整個代碼6次。 有誰知道這是否可行以及如何實現? 謝謝:3
在C#中,您可以在頁面aspx中找到控件。
例:
for (int i = 0; i < 10; i++)
{
TextBox textBox = this.Page.FindControl("textbox" + i.ToString()) as TextBox;
if (textBox != null)
{
textBox.Text = "change Text";
}
}
好吧,只是告訴你我是新手。
public void AddStringToTextbox(int i, string value)
{
switch(i)
{
case: 0:
break;
case: 1:
textbox1.text = value;
break;
case: 2:
textbox2.text = value;
break;
case: 3:
textbox3.text = value;
break;
//and more
}
}
//how to use
for(int i = 0; i < 7; i++)
{
AddStringToTextbox(i, aString);
}
對於Winforms嘗試使用此工具,應該會更安全一些。
var textBoxes = this.Controls.OfType<TextBox>();
for (int i = 0; i < 10; i++)
{
var textBox = textBoxes.FirstOrDefault<TextBox>(t => t.Name.Equals("textBox" + i.ToString()));
if(textBox != null)
{
textBox.Text = i.ToString();
}
}
嘗試將控件放入數組或列表中,然后從那里引用它們。 例如:
public class MyClass
{
private List<TextBox> textboxes;
public MyClass()
{
this.InitializeComponent();
textboxes = new List<TextBox>(){ textbox1, textbox2, textbox3 };
}
private void UpdateTextBoxes(string aString)
{
for(var i = 0; i < textboxes.Count; i++)
{
textboxes[i].Text = aString;
}
}
}
或者,如果您的問題表明這是一個簡單的更新,請嘗試
textbox1.Text =
textbox2.Text =
textbox3.Text =
textbox4.Text =
textbox5.Text =
textbox6.Text =
textbox7.Text =
aString;
可能對您有幫助。 列出TextBox並在需要的地方使用。
List<TextBox> textBoxs = new List<TextBox>();
textBoxs.Add(textBox1);
textBoxs.Add(textBox2);
textBoxs.Add(textBox3);
textBoxs.Add(textBox4);
textBoxs.Add(textBox5);
textBoxs.Add(textBox6);
textBoxs.Add(textBox7);
for (int i = 0; i < 7; i++)
{
textBoxs[i].Text = aString;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.