Динамическое создание текстового поля

#c#

#c#

Вопрос:

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

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

Мой вопрос в том, как выровнять эти текстовые поля по вертикали?

Комментарии:

1. Я думаю, будет лучше, если вы измените заголовок на «Динамически выравнивать текстовые поля с помощью c #». Потому что вы просили об этом, а не о том, как создавать компоненты динамически.

2. Одной из возможностей было бы использовать TableLayoutPanel для компоновки новых элементов.

3. Вы должны добавить это в качестве ответа.

4. Как можно ответить на этот вопрос, не зная технологии? WinForms, WPF и т.д.? И заголовок неправильный. Пожалуйста, отредактируйте вопрос и исправьте его.

Ответ №1:

Если у вас есть начальное значение Y и вы знаете высоту каждого динамически генерируемого текстового поля, то простая арифметика даст вам значение Y для каждого текстового поля:

 int y = 24;
for(int i = 0; i < 5; i  ) {
    Textbox tb = generateTextbox();
    tb.Top = y   i * tb.Height;
    addToForm(tb);
}
  

Должно сработать что-то вроде этого псевдокода.

Редактировать: Это для Windows Forms, которую, я предполагаю, вы используете (на момент написания этой статьи вы не сказали).

Ответ №2:

Здравствуйте, попробуйте это, это наверняка поможет вам

 for (int i = 1; i <= Grab your text box value here; i  )
        {
            TextBox tb = new TextBox();
            tb.Width = width value;
            tb.Height = hight value;
            tb.TextMode = TextBoxMode.SingleLine;
            tb.ID = "Common Name"   (i).ToString();
            tb.Text = Predefine Text;
            tb.Visible = true;

        }
  

Комментарии:

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

2. Это просто, просто добавьте еще одну строку в цикл tb.TextAlign = Вертикальное выравнивание. Центр;

3. Я думаю — но могу ошибаться — что он спрашивает о положениях элементов управления в форме, а не о выравнивании текста.

4. Да, это правда, позвольте мне найти