C#获取名称中包含变量的文本框
我的代码中有8个可见的文本框=false。 现在,我想将它们设置为在按钮单击事件后可见 文本框名称为: tb1 tb2 tb3 我想用tb+I(I=1)获取文本框并使其可见。 在第一个文本框可见后,会出现一个i++,因此每次单击只会显示一个以上的文本框 我已经试过了,但没有成功:C#获取名称中包含变量的文本框,c#,textbox,controls,fetch,visual-studio-2019,C#,Textbox,Controls,Fetch,Visual Studio 2019,我的代码中有8个可见的文本框=false。 现在,我想将它们设置为在按钮单击事件后可见 文本框名称为: tb1 tb2 tb3 我想用tb+I(I=1)获取文本框并使其可见。 在第一个文本框可见后,会出现一个i++,因此每次单击只会显示一个以上的文本框 我已经试过了,但没有成功: TextBox textbox = (TextBox)Controls.Find(string.Format("tb"+i), false).FirstOrDefault();
TextBox textbox = (TextBox)Controls.Find(string.Format("tb"+i), false).FirstOrDefault();
textbox.Visible = true; */
i++;
谢谢。您好,您可以尝试以下方法
//I added the if loop so that you can not go higher then what you have said
if (i < 9)
{
TextBox tb = (TextBox)this.Controls["tb" + i];
tb.Visible = true;
}
//我添加了if循环,这样你就不能比你说的更高了
如果(i<9)
{
TextBox tb=(TextBox)this.Controls[“tb”+i];
tb.可见=真;
}
现在我有了解决方案:
if (i < 9) { var textbox = Controls.Find("tb" + i, true).FirstOrDefault(); if (textbox != null) { textbox.Visible = true; } i++; }
if(i<9){var textbox=Controls.Find(“tb”+i,true).FirstOrDefault();if(textbox!=null){textbox.Visible=true;}i++;}
这是WinForms吗?将它们添加到列表中,并在WinForms中按其索引获取它们。如何将它们添加到列表中?文本框在windows窗体上,不可见。只需执行以下操作:yourList.Add(someTextbox);请注意,Name属性不能保证是唯一的,甚至不能被设置。。通常,人们使用字典通过名字访问它们。检查i的值,必须从1开始。当你在0开始时,它将查找“tb0”,这可能不在你的表单中,这意味着你的文本框不被称为“tb1”,请确保所有内容都相同,否则它将不工作。如果我键入:TextBox tb=(TextBox)this.Controls[“tb2”];代码和名称之间的MessageBox是相同的。您能键入“tb2.visible=false;”