Intereting Posts
Получить имя столбца с листа excel Как вызвать метод в streamе с аргументами и вернуть некоторое значение Проблема с List.Add () сохраняет только последний добавленный элемент Простая реализация хеширования SHA-3 Keccak на неправильный вывод в C #? Почему я должен удалить атрибут xmlns для десериализации моего XML-файла? Почему условный оператор правильно разрешает использование «null» для присваивания типам с нулевым значением? iPlanet LDAP и C # PageResultRequestControl Dropzone on razor Страница возвращает 400 код состояния Ошибка при попытке обновления элемента массива MongoDb Использование PerformanceCounter для отслеживания памяти и использования ЦП на каждый процесс? WCF ConcurrencyMode Single и InstanceContextMode PerCall Entity Framework Code Сначала инициализация внешних ключей Текст кнопки DataGridView не появляется, несмотря на то, что UseColumnTextForButtonText установлен в true Настроить отображение полос прокрутки в ListView? Как вы обрабатываете stream с зависанием?

динамически создавать несколько текстовых полей C #

Это мой код. Но все мои значения textboxes равны нулю.

public void createTxtTeamNames() { TextBox[] txtTeamNames = new TextBox[teams]; int i = 0; foreach (TextBox txt in txtTeamNames) { string name = "TeamNumber" + i.ToString(); txt.Name = name; txt.Text = name; txt.Location = new Point(172, 32 + (i * 28)); txt.Visible = true; i++; } } 

Спасибо за помощь.

Вызов создания массива инициализирует элементы только null . Вам необходимо индивидуально их создать.

 TextBox[] txtTeamNames = new TextBox[teams]; for (int i = 0; i < txtTeamNames.Length; i++) { var txt = new TextBox(); txtTeamNames[i] = txt; txt.Name = name; txt.Text = name; txt.Location = new Point(172, 32 + (i * 28)); txt.Visible = true; } 

Примечание. Поскольку несколько человек указали, чтобы этот код имел смысл, вам нужно будет добавить каждый TextBox блок в родительский элемент Control

Вы должны инициализировать свое текстовое поле в начале цикла.

Вам также нужно использовать цикл for вместо foreach.

Вам нужно обновить TextBoxes:

 for (int i = 0; i < teams; i++) { txtTeamNames[i] = new TextBox(); ... } 

Вы делаете это неправильно, вам нужно добавить экземпляры текстового поля в массив, а затем добавить его в форму. Вот как вы должны это делать.

 public void createTxtTeamNames() { TextBox[] txtTeamNames = new TextBox[10]; for (int u = 0; u < txtTeamNames.Count(); u++) { txtTeamNames[u] = new TextBox(); } int i = 0; foreach (TextBox txt in txtTeamNames) { string name = "TeamNumber" + i.ToString(); txt.Name = name; txt.Text = name; txt.Location = new Point(0, 32 + (i * 28)); txt.Visible = true; this.Controls.Add(txt); i++; } } 
  private void button2_Click(object sender, EventArgs e) { TextBox tb = new TextBox(); tb.Name = abc; tb.Text = "" + i; Point p = new Point(20 + i, 30 * i); tb.Location = p; this.Controls.Add(tb); i++; } private void button3_Click(object sender, EventArgs e) { foreach (TextBox item in this.Controls.OfType()) { MessageBox.Show(item.Name + ": " + item.Text + "\\n"); } }