Используйте переменную как часть имени текстового поля в C # - PullRequest
2 голосов
/ 28 февраля 2011

Я занимаюсь разработкой программы с 30 текстовыми полями и 30 флажками рядом с ними.Я хочу, чтобы люди проверяли имена и затем нажимали кнопку отправки.Затем программа сохраняет имена в текстовом файле с утверждением «истина» или «ложь» рядом с ними, затем загружает файл на FTP-сервер для анализа.Проблема, с которой я сталкиваюсь, заключается в том, что я не хочу писать код для каждого текста и флажок для загрузки и сохранения его значения в текстовом файле.Если я назову текстовые поля чем-то вроде tbox1; tbox2; tbox3 и т. Д. Как использовать цикл, чтобы сказать, напишите значение tbox i +;+ cbox i on line i thing.txt или наоборот?Пожалуйста, любая помощь будет с благодарностью оценена, потому что это избавит меня от ненужного написания кода!

Ответы [ 5 ]

4 голосов
/ 28 февраля 2011

Вы должны создать List<TextBox> и заполнить его текстовыми полями в конструкторе.

Затем вы можете просмотреть список и обработать текстовые поля.

2 голосов
/ 28 февраля 2011
        for (int i = 0; i <= count; i++)
        {
            TextBox textbox = (TextBox)Controls.Find(string.Format("tbox{0}", i),false).FirstOrDefault();
            CheckBox checkbox = (CheckBox)Controls.Find(string.Format("cbox{0}", i),false).FirstOrDefault();

            string s = textbox.Text + (checkbox.Checked ? "true" : "false");
        }
1 голос
/ 28 февраля 2011

Вы можете перебрать все элементы управления в своей форме и получить значения из них на основе их типа / имени.

0 голосов
/ 28 февраля 2011

Прокрутите элементы управления в вашей форме / элементе управления и исследуйте имя:

        foreach (Control control in f.Controls)
        {
            if (control is TextBox)
            {
               //Investigate and do your thing
            }
        }
0 голосов
/ 28 февраля 2011

Предполагая, что это ASP.NET, вы можете использовать что-то вроде этого:

StringBuilder sb = new StringBuilder();
for(int i = 1; i < 30; i++){
    TextBox tb = FindControl("TextBox" + i);
    Checkbox cb = FindControl("CheckBox" + i);
    sb.AppendFormat("TextBox{0}={1}; {2}", i, tb.Text, cb.Checked);
}
string result = sb.ToString();
// Now write 'result' to your text file.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...