c # создание динамического текстового поля во второй форме - PullRequest
0 голосов
/ 04 октября 2011

Я пытаюсь написать код для создания динамических текстовых полей.

У меня есть класс Function и в моей программе есть вторая форма с именем ProductForm.cs

Что я хочу сделать, это прочитать некоторые данные с помощью функции GetSpecs в моем Function.cs, а затем внутри GetSpecs Я хочу вызвать функцию в другом классе и отправить данные в мою другую функцию в ProductForm.cs учебный класс.

Я получаю бланк в конце.

часть моей GetSpecs функции:

private String GetSpecs(String webData)
{
   ......
   ProductForm form2 = new ProductForm();
   form2.CreateTextBox(n);
}

ProductForm.cs

public void CreateTextBox(int i)
    {
        ProductForm form2 = new ProductForm();
        form2.Visible = true;
        form2.Activate();

        int x = 10;
        int y = 10;
        int width = 100;
        int height = 20;

        for (int n = 0; n < i; n++)
        {
            for (int row = 0; row < 4; row++)
            {
                String name = "txtBox_" + row.ToString();
                TextBox tb = new TextBox();
                tb.Name = name;

                tb.Location = new Point(x, y);
                tb.Height = height;
                tb.Width = width + row * 2;
                x += 25 + row * 2;
                this.Controls.Add(tb);

            }
            y += 25;

        }

    }

Я получаю чистую форму ProductForm. Текстовые поля не созданы или я их не вижу.

Если я положу текстовое поле внутрь

private void ProductForm_Load(object sender, EventArgs e)

Я вижу текстовые поля.

Ответы [ 2 ]

3 голосов
/ 04 октября 2011

Вы создаете новый экземпляр ProductForm (в переменной form2), а затем добавляете элементы управления в this (который никогда не отображается).

2 голосов
/ 04 октября 2011

Вы добавляете элементы управления в текущую форму: this.Controls.Add(tb);, вам необходимо добавить их в другую форму:

form2.Controls.Add(tb);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...