У меня есть форма с 10 текстовыми полями и кнопкой OK. При нажатии кнопки OK. Мне нужно сохранить значения из текстовых полей в строку массива.Сохранять значения текстового поля в массиве в C#
Может кто-нибудь помочь мне, пожалуйста?
У меня есть форма с 10 текстовыми полями и кнопкой OK. При нажатии кнопки OK. Мне нужно сохранить значения из текстовых полей в строку массива.Сохранять значения текстового поля в массиве в C#
Может кто-нибудь помочь мне, пожалуйста?
I need to store the values from the textboxes to a string of array.
string[] array = this.Controls.OfType<TextBox>()
.Select(r=> r.Text)
.ToArray();
выше ожидает TextBoxes быть на Form
непосредственно, а не внутри контейнера, если они находятся внутри нескольких контейнеров, то вы должны get all the controls recursively.
Обязательно укажите using System.Linq;
.
Если вы используете более низкие рамки, чем .Net Framework 3.5. Затем вы можете использовать простой цикл Еогеаспа как:
List<string> list = new List<string>();
foreach(Control c in this.Controls)
{
if(c is TextBox)
list.Add((c as TextBox).Text);
}
(это будет работать с .NET Framework 2.0 и далее)
Смарт! Мое альтернативное решение состоит в том, чтобы вручную создавать текстовые поля в коде вместо использования конструктора, а затем остальное тривиально. – David
Habib, у меня есть эта ошибка «System.Windows.Forms.Control.ControlCollection» не содержит определения для «OfType» – QKWS
@QKWS, убедитесь, что вы включили 'using System.Linq;' вверху. – Habib
Чтобы получить все текстовые поля не только прямой Чайлдс вида (это)
Func<Control, IEnumerable<Control>> allControls = null;
allControls = c => new Control[] { c }.Concat(c.Controls.Cast<Control>().SelectMany(x => allControls(x)));
var all = allControls(this).OfType<TextBox>()
.Select(t => t.Text)
.ToList();
Вы попробовали что-нибудь? Пожалуйста, прочитайте [FAQ] и [ask] –
Можете ли вы показать код? Вы знаете, как читать данные из текстового поля, и знаете ли вы, как хранить данные в массиве? – user707727
строка [] list = новый список [9]; list [0] = textbox1.Text; – QKWS