Значения текстового поля в массив - PullRequest
0 голосов
/ 05 ноября 2011

У меня есть несколько текстовых полей, и я хочу просмотреть их и проверить, содержат ли они значение, и если они есть, поместить его в массив.

Текстовые поля называются txtText1, txtText2 .... txtText12. Вот что я получил до сих пор:

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

.. но txtText [i] не допускается.

Как пройти через эти поля?

Ответы [ 5 ]

1 голос
/ 05 ноября 2011

В идеале, помещая их в массив для начала, вместо использования нескольких отдельных переменных. По сути, вы хотите коллекцию текстовых полей, верно? Так что используйте тип коллекции.

Вы могли бы использовать

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

при условии, что их идентификаторы были указаны правильно, но лично я бы использовал коллекции , предназначенные для подобных вещей.

0 голосов
/ 28 сентября 2015

Попробуйте создать список текстовых полей вместо массива следующим образом:

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";
}
0 голосов
/ 05 ноября 2011

вы можете попробовать вот так ....

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();
0 голосов
/ 05 ноября 2011

Я не думаю, что вы можете создавать такие объекты массива в конструкторе.

В любом случае, что вы можете сделать: вы можете создать переменную класса IEnumerable<Textbox> _textboxes и заполнить ее всеми текстовыми полями вконструктор.

, затем в вашем коде вы можете просто сделать

foreach(var textbox in _textboxes)
{
    Console.WriteLine(textbox.Text); // just an example, idk what you want to do with em
}
0 голосов
/ 05 ноября 2011

Предполагая, что массив txtText содержит ссылки на объекты TextBox, вы можете сделать это

var textArray=txtText.Where(t=>!string.IsNullOrEmpty(t.Text)).Select(t=>t.Text).ToArray();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...