【问题标题】:Loop through textbox in C# [duplicate]循环遍历C#中的文本框[重复]
【发布时间】:2016-03-12 16:42:13
【问题描述】:

我有一系列带有标签名称和序号的文本框 例如 entry_1 entry_2 exit_1 exit_2

我想遍历其中的每一个以检查它们是否有值并检索值

类似这样的:

for (int i = 1; i <= 2; i++)

entry =  "entry_" + i.text
exit = "exit_" + i.text

任何帮助将不胜感激

【问题讨论】:

    标签: c#


    【解决方案1】:
               List<string> Values = new List<string>();
                foreach (TextBox txt in this.Controls)
                {
                    if (!string.IsNullOrWhiteSpace(txt.Text))
                    {
                        Values.Add(txt.Text);
                    }
                }
    
                    or
    
                int countOfTextBoxes= //Your TextBox Count;
                TextBox txt;
                for (int i = 1; i <= countOfTextBoxes; i++)
                {
                    txt = (TextBox)this.Controls["entry_" + i];
                    if (!(string.IsNullOrWhiteSpace(txt.Text)))
                    {
                        //Your Code For Retreiving Texts
                    }
                }
    

    【讨论】:

    • 感谢 ufuk,当我尝试第二个选项时,我在 txt 上得到 nullreferenceexception。你调用的对象是空的 。我需要包括什么来防止这种情况发生?
    • 你可以简单地做一个空检查。对于 Second Option if txt Comes Null ,这意味着您输入了错误的文本框数量或文本框名称与 entry_i 格式不匹配。再添加一个 if 子句,例如 if (this.Controls["entry"+i] != null) {All Code İnside For Loop Comes Here }
    • 由于某种原因,txt 继续返回 null……我已将 txt.Text 替换为 entry_1.Text,一切正常。问题我在txt中,但我找不到问题
    猜你喜欢
    • 1970-01-01
    • 2011-06-19
    • 1970-01-01
    • 2018-10-16
    • 2012-11-15
    • 1970-01-01
    • 2019-08-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多