你好 我真的需要你的帮助,这是我在大学的最后一个项目 我必须制作文本框矩阵,用户可以选择它的大小 但我不知道我创建它后如何参考文本框,所以我可以做计算 以及如何更改类型。 这就是我在运行时获取文本框的代码 我希望你帮助我 C#代码
private void button1_Click(object sender, EventArgs e)
{
//TextBox tb = new TextBox();
int y = 10;
row = Convert.ToInt32(textBox1.Text);
int col = row;
//string []a = new string[row];
int count = 0;
int sum;
for (int i = 0; i < row; i++)
{
int x = 10;
for (int j = 0; j < col; j++)
{
t = new TextBox();
t.Size = new Size(50, 20);
t.Name = "tb" + count;
count++;
t.Location = new Point(x, y);
t.Visible = true;
//t.GetType();
//a[row] = t.Text;
Controls.Add(t);
x = x + 70;
//t.Text =Convert.ToDecimal(t.Text);
//Convert.ToDecimal(t.Text);
if (t.Name == "tb1")
t.Text = "10";
}
y = y + 25;
}
答案 0 :(得分:1)
保留对每个TextBox
的引用(例如,您可以将其存储在二维数组中):
// Defined at the Form level
private TextBox[,] textBoxes = new TextBox[10, 10];
...
// When creating the TextBox
t = new TextBox();
...
// Store the reference
textBoxes[i, j] = t;
...
稍后您可以获得值:
var text = textBoxes[row, col].Text;
答案 1 :(得分:1)
为新插入的文本框添加名称:
t.Name = "dynamicTextBox" + i.ToString();
之后,您只需通过其名称访问它:
this.Controls["dynamicTextBox0"].Text = "my text";
这可以防止需要额外的数组来保存您动态创建的文本框。
答案 2 :(得分:0)
试试这个,
TextBox t =(TextBox)Controls [“tb”+ count.ToString()]
contorl的name属性成为控件集合中的键。
另外你可以检查Controls.ContainsKey(“tb”+ count.ToString())是否存在