我目前正在創建一個小應用程序,我創建多個文本框控件到一個面板,具體取決於想要創建多少用戶。 之後,我想獲取這個文本框的文本,但爲此我需要Contoll名稱。也許你可以告訴我如何找出每個創建的TextBox的控制名稱。獲取動態創建的文本框的Controll.Name
感謝您的幫助。
我目前正在創建一個小應用程序,我創建多個文本框控件到一個面板,具體取決於想要創建多少用戶。 之後,我想獲取這個文本框的文本,但爲此我需要Contoll名稱。也許你可以告訴我如何找出每個創建的TextBox的控制名稱。獲取動態創建的文本框的Controll.Name
感謝您的幫助。
我很確定你會以不同的方式處理每個文本框。例如,一個文本框的文本值將用於名字,下一個用於姓名等。所以你不僅需要文本框的名字,而且還要爲每一個做不同的事情。這裏是我在循環中生成一些文本框的一些代碼。我給他們的名字,然後我給他們添加一個事件處理程序。在處理程序中,我將決定如何處理爲文本輸入的值。您應該根據您的需要爲文本框提供更多描述性名稱
public Form1()
{
InitializeComponent();
for (int i = 0; i < 5; i++)
{
var txtBox = new TextBox();
txtBox.Name = "TextBox" + i;
txtBox.TextChanged += TxtBox_TextChanged;
this.tableLayoutPanel1.Controls.Add(txtBox);
}
}
private void TxtBox_TextChanged(object sender, EventArgs e)
{
var txtBox = sender as TextBox;
string firstName = string.Empty;
string lastName = string.Empty;
switch (txtBox.Name)
{
case "TextBox1":
firstName = txtBox.Text;
break;
case "TextBox2":
lastName = txtBox.Text;
break;
// more cases here but you get the point...
default:
break;
}
}
此代碼採用主從tableLayoutPanel1
textbox1
,從控制投它TextBox
並採取Text
屬性:
string s = ((TextBox)tableLayoutPanel1.Controls["TxtBox1"]).Text;
如果你需要他們所有的,然後遍歷文本框:
string[] t = new string[4];
for(int i=0; i<4; i++)
t[i] = ((TextBox)tableLayoutPanel1.Controls["TxtBox"+(i+1).ToString()]).Text;
爲什麼不在創建文本框時明確指定文本框的名稱?雖然,我不確定爲什麼你甚至不知道爲什麼你需要通過名字訪問它們。只需枚舉面板的子項即可獲取文本框。或者在創建它們並通過數組訪問它們時將它們存儲在數組中。 – itsme86