Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.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# 将int附加到For C循环中字符串或文本框名称的末尾#_C#_String_For Loop - Fatal编程技术网

C# 将int附加到For C循环中字符串或文本框名称的末尾#

C# 将int附加到For C循环中字符串或文本框名称的末尾#,c#,string,for-loop,C#,String,For Loop,我有一个C#应用程序,其中有几个文本框具有相同的名称,但末尾有一个从1开始到19的数字。我希望使用for循环通过使用arraylist向这些文本框动态添加值。在某些情况下,arrayList中没有19个项目,因此某些文本框将被取消填充。这是我试图做的事情的示例代码。这可能吗 for (int count = 0; count < dogList.Count; count++) { regUKCNumTextBox[count+1].Text=(d

我有一个C#应用程序,其中有几个文本框具有相同的名称,但末尾有一个从1开始到19的数字。我希望使用for循环通过使用arraylist向这些文本框动态添加值。在某些情况下,arrayList中没有19个项目,因此某些文本框将被取消填充。这是我试图做的事情的示例代码。这可能吗

  for (int count = 0; count < dogList.Count; count++)
        {
            regUKCNumTextBox[count+1].Text=(dogList[count].Attributes["id"].Value.ToString());
        }
for(int count=0;count
那么你有一组文本框要从上到下填写?然后是的,一组
文本框
似乎是合适的

如果您将
文本框
引用粘贴在数组或
列表中
——我不会使用
数组列表
,因为它被认为是不推荐使用的,而支持
列表
——那么是的,您可以这样做:

TextBox[] regUKCNumTextBox = new [] 
    {
         yourTextBoxA,
         yourTextBoxB,
         ...
    };

那么,是的,您的逻辑是可能的,您还可以根据控件的名称查询该控件,尽管在运行时这会更重,所以这是一种折衷。是的,在此解决方案中,您必须设置一个集合来保存文本框引用,但这样会更有效。

所以您有一个从上到下填充的文本框集合?然后是的,一组
文本框
似乎是合适的

如果您将
文本框
引用粘贴在数组或
列表中
——我不会使用
数组列表
,因为它被认为是不推荐使用的,而支持
列表
——那么是的,您可以这样做:

TextBox[] regUKCNumTextBox = new [] 
    {
         yourTextBoxA,
         yourTextBoxB,
         ...
    };
那么,是的,您的逻辑是可能的,您还可以根据控件的名称查询该控件,尽管在运行时这会更重,所以这是一种折衷。是的,在此解决方案中,您必须设置一个集合来保存文本框引用,但这样会更有效。

尝试以下方法:

(顺便说一下,我假设您使用WinForms)

for(int count=0;count
使用此代码,您将尝试查找
控件
表单
s
控件
集合。然后您必须确保控件是
文本框
类型。当它是;将其投射到
文本框中
,然后使用它执行您想要的操作。在这种情况下;为
文本
属性指定一个值

像James Michael Hare提供的解决方案那样,保存一个
文本框的集合将更加有效。请尝试以下方法:

(顺便说一下,我假设您使用WinForms)

for(int count=0;count
使用此代码,您将尝试查找
控件
表单
s
控件
集合。然后您必须确保控件是
文本框
类型。当它是;将其投射到
文本框中
,然后使用它执行您想要的操作。在这种情况下;为
文本
属性指定一个值


像James Michael Hare提供的解决方案那样,保存您的
文本框的集合将更为有效;这里的整体设计似乎有点不太对劲;但回顾过去,这里有一些可能有效的伪代码:

for (int count = 0; count < dogList.Count; count++)
{
    var stringName = string.Format("myTextBoxName{0}", count);
    var ctrl = FindControl(stringName);
    if(ctrl == null) continue;
    ctrl.Text = dogList[count];
}
for(int count=0;count
Yikes;这里的整体设计似乎有点不太对劲;但回顾过去,这里有一些可能有效的伪代码:

for (int count = 0; count < dogList.Count; count++)
{
    var stringName = string.Format("myTextBoxName{0}", count);
    var ctrl = FindControl(stringName);
    if(ctrl == null) continue;
    ctrl.Text = dogList[count];
}
for(int count=0;count
您是否尝试过示例代码?如果它不起作用,您看到了什么错误,或者出现了什么意外的结果?您是否尝试过示例代码?如果它不起作用,您看到了什么错误,或者出现了什么意外的结果?它起作用的只是文本框中的值为System.Xml.XmlElementTry
。InnerText
而不是
。value.ToString()
仍然产生相同的结果。这很奇怪,因为如果我有完全相同的代码,除了直接使用其名称将其分配给文本框外,它工作正常。除了文本框中的值是System.Xml.xmlementtry
。InnerText
而不是
。value.ToString()
仍会产生相同的结果。这很奇怪,因为如果我有完全相同的代码,除了直接使用其名称将其分配给文本框,它工作正常。当我尝试这样做时,我得到了一个错误。我尝试这样做:TextBox[]regUKCNumTextBox=new[]{REGKCNUMTEXTBOX1;REGKCNUMTEXTBOX2;REGKCNUMTEXTBOX3;REGKCNUMTEXTBOX4;REGKCNUMTEXTBOX5;REGKCNUMTEXTBOX6;REGKCNUMTEXTBOX7;REGKCNUMTEXTBOX8;REGKCNUMTEXTBOX9;}当我尝试这样做时,我遇到了一个错误。我尝试这样做: