none
Динамическое создание интерфейса RRS feed

  • Вопрос

  • Добрый вечер.

    Мне необходимо поместить на форме несколько TextBox-ов колличество вводит пользователь и мне не известно на этапе создания приложения.

    Элементы интерфейса я создаю так:

    int numericOfInter = listBoxControl1.Items.Count;
                    int yLabel = 6;
                    int yEdit = 3;
                    for (int i = 0; i < numericOfInter; i++)
                    {
                        labelName = "Label" + (i + 10);
                        labelNameC = new LabelControl();
                        labelNameC.Location = new Point(6, yLabel);
                        labelNameC.Name = labelName;
                        panelControl1.Controls.Add(labelNameC);
                        labelNameC.Text = dt_etalon.Columns[i].Caption+" :";
                        yLabel += 25;
                        TextEdit texteditNameC = new TextEdit();
                        texteditNameC.Location = new Point(80, yEdit);
                        panelControl1.Controls.Add(texteditNameC);
                        yEdit += 25;
                    }

    Но далее мне надо по нажатию на кнопку брать значения из созданных textbox-ов и работать с ними. Но я не знаю имен компонентов и вообще не знаю как к ним обратиться :(

    Я постарался как можно яснее изложить вопрос, надеюсь на вашу помощь.

    13 февраля 2012 г. 20:46

Ответы

  • > на форме несколько TextBox-ов колличество вводит пользователь [...] надо по нажатию на кнопку брать значения из созданных textbox-ов и работать с ними. 
     
       
    в обработчике нажатия кнопки:
     

    var values = panelControl1.Controls.OfType<TextBox>().Select(t => t.Text).ToList();

     
    или так:
     

    var values = new List<string>();
    foreach(Control c in panelControl1.Controls)
    {
        var tb = c as TextBox;
        if(tb != null)
            values.Add(tb.Text);
    }
     
     
    • Помечено в качестве ответа mr_arti 14 февраля 2012 г. 18:11
    13 февраля 2012 г. 22:42
  • Здравствуйте.

    Вы же сами программно создаете TextBox-ы? Тогда выделите под них сраз список List и добавляйте созданные текстбоксы и туда.

    Далее просто пройдетесь циклом по списку, найдете нужный textbox по имени или тегу и получите его значение.


    Для связи [mail]

    • Помечено в качестве ответа mr_arti 14 февраля 2012 г. 18:11
    14 февраля 2012 г. 10:26

Все ответы

  • > на форме несколько TextBox-ов колличество вводит пользователь [...] надо по нажатию на кнопку брать значения из созданных textbox-ов и работать с ними. 
     
       
    в обработчике нажатия кнопки:
     

    var values = panelControl1.Controls.OfType<TextBox>().Select(t => t.Text).ToList();

     
    или так:
     

    var values = new List<string>();
    foreach(Control c in panelControl1.Controls)
    {
        var tb = c as TextBox;
        if(tb != null)
            values.Add(tb.Text);
    }
     
     
    • Помечено в качестве ответа mr_arti 14 февраля 2012 г. 18:11
    13 февраля 2012 г. 22:42
  • Здравствуйте.

    Вы же сами программно создаете TextBox-ы? Тогда выделите под них сраз список List и добавляйте созданные текстбоксы и туда.

    Далее просто пройдетесь циклом по списку, найдете нужный textbox по имени или тегу и получите его значение.


    Для связи [mail]

    • Помечено в качестве ответа mr_arti 14 февраля 2012 г. 18:11
    14 февраля 2012 г. 10:26