[英]How to get dynamic textbox value c#?
我創建了一個生成一些文本框的按鈕,但我不知道如何獲取相應的文本框值。 我發現一些類似的想法只使用 asp.net c#,但我認為這有點不同。 這是我的代碼:
public partial class Form1 : Form
{
int control = 1;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
TextBox txt = new TextBox();
this.Controls.Add(txt);
txt.Top = control * 25;
txt.Left = 100;
txt.Name = "TextBox" + this.control.ToString();
control = control + 1;
}
有人能幫我嗎?!
好吧,您已將文本框添加到this.Controls
中,因此您可以 go 在那里翻找再次找到它們
foreach(var c in this.Controls){
if(c is TextBox t && t.Name.StartsWith("TextBox"))
MessageBox.Show(t.Text);
我會為 Name 選擇比“TextBox”+integer 更好的名稱,但只要您不使用相同的前綴命名您不想考慮的其他文本框,這只會選擇您動態添加的那些
如果您知道控件的名稱 I,e,您知道您想要該地址並且用戶肯定已將其輸入到 TextBox 2 中,您可以訪問按該名稱索引的控件:
this.Controls["TextBox2"].Text;
甚至不需要轉換為 TextBox .. 所有控件都有一個 text 屬性
當您擁有文本框的實例時,您可以通過讀取 Value 屬性來獲取值。 獲取實例的一種方法是在控件列表中搜索它,當您為 texbox 指定一個唯一名稱時。
{
TextBox txt = new TextBox();
txt.Name = "UniqueName";
Controls.Add(txt);
}
{
foreach(var control in Controls)
if (control is TextBox tb && tb.Name == "UniqueName")
return tb.Value;
}
您可以調用Control.ControlCollection.Find(String, Boolean) 方法來獲取您想要的文本框。
string text = ((TextBox)this.Controls.Find("textboxname", true)[0]).Text;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.