Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
9 / 5 / 2
Регистрация: 24.04.2015
Сообщений: 97
1

Запись информации в файл из динамически созданных TextBox

29.05.2015, 15:07. Показов 1452. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
У меня возникла проблема, как реализовать возможность записывать в файл(формат txt) Текст из динамических TextBox. Я пробовал через массив
C#
1
2
3
4
5
6
7
8
9
10
StreamWriter write_text;
             FileInfo file = new FileInfo(@"Test\test.txt");
                write_text = file.AppendText();
            for (int i=0; i<99; i++)
        {
      
                write_text.WriteLine(textBox1[i].Text);
 
            }
             write_text.Close();
Код на создание:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
TextBox[] textBox1= new TextBox[99];
int j=0,p=1;
public void button1_Click(object sender, EventArgs e)
        {
  for (int i = j; i < p; i++)
{
textBox1[i] = new System.Windows.Forms.TextBox();
                    textBox1[i].Height = textBox2.Height;
                    textBox1[i].Width = textBox2.Width;
textBox1[i].Location = new Point(textBox2.Location.X, textBox2.Location.Y);
this.control.Add(textBox1[i]);
j=j+1; p=p+1;
} 
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.05.2015, 15:07
Ответы с готовыми решениями:

Запись динамически созданных объектов в файл
Всем привет. Хочу спросить, пока не наделал глупостей. Есть два класса. //первый класс,...

Запись в файл текста из динамически созданных текст-боксов
Здравствуйте, помогите пожалуйста новичку в winForms. В comboBox'e имеется коллекция (2,3,4,5)...

Удаление динамически созданных textbox
Подскажите как решить проблема. У меня есть два чекбокса первый создаёт 2 текстбокса, второй 3...

Получение данные с динамически созданных Textbox
Доброе время суток! Есть проект состоящий из форм. В по данным одной из форм создается n TextBox,...

11
17 / 17 / 17
Регистрация: 14.01.2015
Сообщений: 105
30.05.2015, 10:46 2
что за проблема?
Цитата Сообщение от Symblight Посмотреть сообщение
У меня возникла проблема
0
9 / 5 / 2
Регистрация: 24.04.2015
Сообщений: 97
30.05.2015, 14:44  [ТС] 3
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 TextBox[] textBox1 = new TextBox[99];
        int j = 0, p = 1;
        int x=30;
        private void button1_Click(object sender, EventArgs e)
        {
           
            for (int i = j; i < p; i++)
            {
                textBox1[i] = new System.Windows.Forms.TextBox();
                textBox1[i].Height = textBox2.Height;
                textBox1[i].Width = textBox2.Width;
                textBox1[i].Location = new Point(textBox2.Location.X, textBox2.Location.Y+x);
                this.Controls.Add(textBox1[i]);
                
            }j = j + 1; p = p + 1;x=x+30;
Как мне записать из каждого textBox[i] в строку файла?
TextBox[1] строка1
TextBox[2] строка2
0
17 / 17 / 17
Регистрация: 14.01.2015
Сообщений: 105
30.05.2015, 15:27 4
Вот проект по твоему коду, все работает. Я правда не понял пару моментов
WindowsFormsApplication5.rar
1
9 / 5 / 2
Регистрация: 24.04.2015
Сообщений: 97
30.05.2015, 17:55  [ТС] 5
Спасибо!! только вот еще момент. Я хотел при нажатии на кнопку- добавлять TextBox, сколько раз нажал на кнопку-столько и textbox,будет, а не заранее установить количество. Поэтому бред в коде писал.

Добавлено через 2 минуты
Так, как сделать, чтобы при клике сразу добавлял один Textbox, после нажатия на "запись"-он добавлял в конец значения из textbox в файл не стирая предыдущие?
0
17 / 17 / 17
Регистрация: 14.01.2015
Сообщений: 105
30.05.2015, 18:51 6
Лучший ответ Сообщение было отмечено Symblight как решение

Решение

file.AppendText() - дописывает текст в конец файла.
Тогда нужно создавать эти TextBox-ы в отдельной панели или в файл запишутся все TextBox-ы на форме
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
        int n;
        private void button1_Click(object sender, EventArgs e)
        {
            textBox = new TextBox();
            textBox.Location = new Point(0, n);
            textBox.Height = 20;
            textBox.Width = 100;
            panel1.Controls.Add(textBox);
            n += 25;
 
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            FileInfo file = new FileInfo(@".\\test.txt");
            StreamWriter write_text = file.AppendText();
            foreach(Control c in panel1.Controls)
                if (c is TextBox)
                {
                    write_text.WriteLine(((TextBox)c).Text);
                }
            write_text.Close();
        }
1
9 / 5 / 2
Регистрация: 24.04.2015
Сообщений: 97
30.05.2015, 22:27  [ТС] 7
Большое спасибо! Понял вообщем как с этим работать.

Добавлено через 3 часа 22 минуты
А если textbox (4шт) создаются на тоже созданной panel. А panel создается на panel2.
Как обратиться ко всем созданным panel?
Если добавить 2 раза panel-он запишет данные из последнего созданного
C#
1
2
3
4
5
6
7
 foreach (Control a in panel.Controls)
            {
                    if (a is TextBox)
                   {
                        write_text.WriteLine(((TextBox)a).Text);
                    }
             }
Сам панель создал так...
C#
1
2
3
4
            panel = new Panel();
            panel.Location = new Point(0, x);
            panel.Height = 100;
            panel.BorderStyle = BorderStyle.FixedSingle;
0
17 / 17 / 17
Регистрация: 14.01.2015
Сообщений: 105
30.05.2015, 23:20 8
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
if (panel != null)
            {
                FileInfo file = new FileInfo(@".\\test.txt");
                StreamWriter write_text = file.AppendText();
                foreach (Control c2 in panel2.Controls)
                {
                    if (c2 is Panel)
                    {
                        foreach (Control c in c2.Controls)
                        {
                            if (c is TextBox)
                            {
                                write_text.WriteLine(((TextBox)c).Text);
                            }
                        }
                    }
                }
                write_text.Close();
            }
1
9 / 5 / 2
Регистрация: 24.04.2015
Сообщений: 97
31.05.2015, 11:50  [ТС] 9
У меня снова проблема возникла. Я создаю новый panelС(динамически) и с tableLayoutPanel1 Он записывает по несколько раз значения из panel и panelC
Вот сама программа. Какое условие нужно поставить, чтоб при записи foreach (Control c2 in tableLayoutPanel1.Controls) брал значения отдельно от panel и panelC. Надеюсь это был последний вопрос ибо только недавно начал изучать динамическое создание объектов...
Вложения
Тип файла: rar WindowsFormsApplication5.rar (61.5 Кб, 5 просмотров)
0
9 / 5 / 2
Регистрация: 24.04.2015
Сообщений: 97
31.05.2015, 12:08  [ТС] 10
if (c == panelC) в этом духе надо делать?
0
17 / 17 / 17
Регистрация: 14.01.2015
Сообщений: 105
31.05.2015, 13:25 11
Лучший ответ Сообщение было отмечено Symblight как решение

Решение

Не, это не сработало
Цитата Сообщение от Symblight Посмотреть сообщение
if (c == panelC) в этом духе надо делать?
Формат сохранения изменился, сначала сохраняет значения RadioButton/CheckBox, а потом значения TextBox-ов
WindowsFormsApplication5.rar
1
9 / 5 / 2
Регистрация: 24.04.2015
Сообщений: 97
31.05.2015, 13:32  [ТС] 12
Окей, понял, большое спасибо тебе за помощь в этом деле. Я уже с этим долго возился... Выручил
0
31.05.2015, 13:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.05.2015, 13:32
Помогаю со студенческими работами здесь

Как получить данные с динамически созданных textbox?
Пишу программу в которой пользователь указывает количество параметров зависимо от которых создается...

Как получить свойства динамически созданных TextBox
Создаю Public Class Form1 Private Sub nach() Handles Me.Load Dim k As Integer ...

Как создать массив динамически созданных TextBox
Как создать массив динамически созданных TextBox, а также вывести TextBox.Text

Нахождение суммы элементов динамически созданных textbox ов
Здравствуйте, есть динамически созданные textbox ы(что-то типа матрицы), и нужно посчитать сумму...

Динамическое создание событий для динамически созданных TextBox
Есть поиск по Excel. Пользователь пишет фамилию, программа ищет по ней записи в таблице и выдает их...

Как считать введённый текст из динамически созданных TextBox?
MDI-приложение. Создаётся отдельная форма &quot;Добавление книги&quot;, на ней создаются програмно textBox'ы....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru