Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#获取名称中包含变量的文本框_C#_Textbox_Controls_Fetch_Visual Studio 2019 - Fatal编程技术网

C#获取名称中包含变量的文本框

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();

我的代码中有8个可见的文本框=false。 现在,我想将它们设置为在按钮单击事件后可见

文本框名称为:

tb1 tb2 tb3

我想用tb+I(I=1)获取文本框并使其可见。 在第一个文本框可见后,会出现一个i++,因此每次单击只会显示一个以上的文本框

我已经试过了,但没有成功:

 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;”