文本框值到数组

本文关键字:数组 文本 | 更新日期: 2023-09-27 18:13:40

我有几个文本框,我想通过它们循环,并检查它们是否包含一个值,如果他们这样做,把它放入一个数组。

文本框分别称为txtText1、txtText2....txtText12。这是我目前得到的:

for (int i = 1; i < 13; i++)
{
   if(txtText[i] != String.Empty)
    {
        TextArray[i] = Convert.ToString(txtText[i].Text);
    }
}

. .但txtText[i]是不允许的。

我如何遍历这些盒子?

文本框值到数组

理想情况下,将它们放在一个数组中开始,而不是使用几个单独的变量。本质上你想要一个文本框的集合,对吧?所以使用集合类型

可以使用

TextBox tb = (TextBox) Controls["txtText" + i];

假设它们的id已经正确指定,但我个人会使用为这类事情设计的集合

假设txtText数组包含对TextBox对象的引用,您可以这样做

var textArray=txtText.Where(t=>!string.IsNullOrEmpty(t.Text)).Select(t=>t.Text).ToArray();

我不认为你可以在设计器中创建这样的数组对象。

无论如何,你可以做的是:你可以创建一个类变量IEnumerable<Textbox> _textboxes,并在构造函数中填充所有的文本框。

之后在你的代码中你可以直接写

foreach(var textbox in _textboxes)
{
    Console.WriteLine(textbox.Text); // just an example, idk what you want to do with em
}

您可以这样尝试....

List<string> values = new List<string>();
    foreach(Control c in this.Controls)
    {
        if(c is TextBox)
        {
            TextBox tb = (TextBox)c;
            values.Add(tb.Text);
        }
     }
     string[] array = values.ToArray();

尝试创建一个文本框列表,而不是像这样创建一个数组:

List<TextBox> myTextboxList = new List<TextBox>();
myTextBoxList.Add(TextBox1);
myTextBoxList.Add(TextBox2);
mytextBoxList.Add(TextBox3);

然后使用foreach来一次访问所有项,像这样:

Foreach (TextBox item in myTextboxList) {
    // Do something here, for example you can:
    item.Text = "My text goes here";
}