Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/29: Рейтинг темы: голосов - 29, средняя оценка - 4.93
0 / 0 / 0
Регистрация: 15.05.2018
Сообщений: 8

Переход от одной формы к другой при нажатии кнопки

23.05.2018, 19:22. Показов 5873. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Можете подсказать, пожалуйста. У меня есть form2, которая имеет кнопку. При нажатии кнопки активируется form4 в которую автоматически подставляется значения из файлов. Файлы содержат вопросы. Проблема в том, что вопросы подставляются не сразу и получается, что отображение пойдет только после нажатия другой кнопки и со 2 вопроса. Как исправить? Прогу прикрепила.
Вложения
Тип файла: rar WindowsFormsApp2.rar (248.8 Кб, 9 просмотров)
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.05.2018, 19:22
Ответы с готовыми решениями:

Переход от одной формы к другой и ошибка при закрытии одной из них
Здравствуйте! Есть 2 формы. Из одной перехожу во вторую по нажатию кнопки, со второй возвращаюсь в первую 2мя способами: 1) при закрытии...

Исчезновение одной кнопки при нажатии другой
Здравствуйте,уважаемые знатоки:)Задача такая:нужно при нажатии кнопки№1 чтоб пропадала кнопка 2 и при нажатии кнопки 2 пропадали кнопки 1 и...

При нажатии на кнопку происходит переход на другой слайд и автоматическое нажатие кнопки
При нажатии на кнопку происходит переход на другой слайд и автоматическое нажатие кнопки. Подскажите как это организовать...

15
549 / 480 / 315
Регистрация: 24.09.2013
Сообщений: 3,345
Записей в блоге: 1
23.05.2018, 23:16
Вы хоть сами понимаете, то написали.
Кто берет даные из файлов, имена файлов, какие данные и пр. и пр.
0
 Аватар для Shogun31337
557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
24.05.2018, 01:05
Цитата Сообщение от Лес тут Посмотреть сообщение
Как исправить?


Цитата Сообщение от Лес тут Посмотреть сообщение
Прогу прикрепила
Вы уж извините, но код ужасен... Процентов 80 кода там просто не нужно... В инете, да и тут на форуме, множество примеров тестов. Посмотрите, пожалуйста, и переделайте!

Цитата Сообщение от zna926 Посмотреть сообщение
Кто берет даные из файлов
Да тест там. Вопросы она из файлов загружает.
1
0 / 0 / 0
Регистрация: 15.05.2018
Сообщений: 8
24.05.2018, 02:48  [ТС]
За помощь спасибо. Пишу 2 дня на с# и открывала visual studio 1-3 раза, прошу строго не судить. Если еще объясните, что не правильно, то будет вообще супер
0
 Аватар для Shogun31337
557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
24.05.2018, 03:17
Цитата Сообщение от Лес тут Посмотреть сообщение
За помощь спасибо
На здоровье!

Цитата Сообщение от Лес тут Посмотреть сообщение
прошу строго не судить
Ну это я еще не строго!

Цитата Сообщение от Лес тут Посмотреть сообщение
Если еще объясните, что не правильно, то будет вообще супер
Во-первых, куча лишнего, ничего не делающего кода... Такое чувство, что Вы сами не понимаете, что у Вас там происходит. Т.е. для начала, разберитесь с логикой работы программы.

Во-вторых, у Вас куча форм, которые оказываются просто скрытыми и при "выходе" из программы, она фактически остается висеть в памяти и не завершается.

Ну а в целом, могу посоветовать начинать изучение языка с чтения учебников и выполнения заданий, которые в них рассматриваются, а не с подобных творений.
0
0 / 0 / 0
Регистрация: 15.05.2018
Сообщений: 8
19.06.2018, 14:55  [ТС]
Добрый день! Можете еще раз выручить?
0
 Аватар для Shogun31337
557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
20.06.2018, 13:40
Лес тут, добрый день! Вы вопрос то напишите, а там уже видно будет. и лучше создайте новую тему. По правилам форума должна быть отдельная тема на каждый вопрос.
0
0 / 0 / 0
Регистрация: 15.05.2018
Сообщений: 8
20.06.2018, 14:43  [ТС]
В программу добавила еще формы с вопросами. Проблема теперь в том, что в 2 двух формах вопросы из файла считываются нормально, а на других трех показывает только первый вопрос, а остальные не считывает((
Вложения
Тип файла: rar WindowsFormsApp2.rar (433.9 Кб, 2 просмотров)
0
 Аватар для Shogun31337
557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
20.06.2018, 18:31
Лес тут, я до конца недели в командировке и без компа. Не могу проект посмотреть. Скопируйте код сюда.
0
0 / 0 / 0
Регистрация: 15.05.2018
Сообщений: 8
20.06.2018, 19:23  [ТС]
Это form7. Здесь все работает отлично. На 4 форме такой же код только с другим файлом, который содержит вопросы.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
namespace WindowsFormsApp2
{
    using System.IO;
    public partial class Form7 : Form
    {
        public Form7()
        {
            InitializeComponent();
 
        }
        int number = 0;//номер файла 
        string right = "";//правильный ответ
        const int all = 25;//количество вопроссов
 
        void Find(int file_number)
        {
 
 
            DirectoryInfo directoryInfo = new DirectoryInfo("Form7");
            if (directoryInfo.Exists)
 
            {
 
                FileInfo[] fileInfos = directoryInfo.GetFiles();
                System.IO.FileInfo f = new System.IO.FileInfo(fileInfos[file_number].FullName);
 
 
                if (f.Exists)
                    using (System.IO.StreamReader sr = new System.IO.StreamReader
                        (f.FullName, Encoding.GetEncoding("windows-1251")))
                    {
 
                        string str = "";
                        string s = "";
                        while ((s = sr.ReadLine()) != null)
                        {
                            str += s + "@";
                        }
                        string[] split = str.Split('@');
                        label1.Text = split[0];
                        right = split[5];
                        Random r = new Random();
                        int t = r.Next(5);
                        if (t == 0)
                        {
                            radioButton1.Text = split[5];
                            radioButton2.Text = split[1];
                            radioButton3.Text = split[2];
                            radioButton4.Text = split[3];
                            radioButton5.Text = split[4];
                        }
                        else if (t == 1)
                        {
                            radioButton1.Text = split[1];
                            radioButton2.Text = split[5];
                            radioButton3.Text = split[2];
                            radioButton4.Text = split[3];
                            radioButton5.Text = split[4];
                        }
                        else if (t == 2)
                        {
                            radioButton1.Text = split[2];
                            radioButton2.Text = split[1];
                            radioButton3.Text = split[5];
                            radioButton4.Text = split[3];
                            radioButton5.Text = split[4];
                        }
                        else if (t == 3)
                        {
                            radioButton1.Text = split[3];
                            radioButton2.Text = split[1];
                            radioButton3.Text = split[2];
                            radioButton4.Text = split[5];
                            radioButton5.Text = split[4];
                        }
                        else
                        {
                            radioButton1.Text = split[4];
                            radioButton2.Text = split[1];
                            radioButton3.Text = split[2];
                            radioButton4.Text = split[3];
                            radioButton5.Text = split[5];
                        }
                    }
 
 
            }
 
 
        }
 
        private void Form1_Shown(object sender, EventArgs e)
        {
            radioButton1.Checked = false;
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
 
            Find(number);
        }
        static int pravilno = 0; static int bad = 0;
 
 
 
        private void button2_Click(object sender, EventArgs e)
        {
 
            RadioButton[] RB = { radioButton1, radioButton2, radioButton3, radioButton4, radioButton5 };
 
            foreach (RadioButton rb in RB)
            {
                if (rb.Checked && rb.Text == right) ++pravilno;
            }
            foreach (RadioButton rb in RB)
            {
                if (!rb.Checked && rb.Text == right) bad++;
            }
 
            number++;
            if (number < all)
            {
                foreach (RadioButton rb in RB)
                {
                    rb.Checked = false;
                }
 
                Find(number);
            }
 
            else
            {
                Form6 f6 = new Form6();
                f6.Show();
                this.Hide();
            }
 
 
 
            string verno = pravilno.ToString();
            string neverno = bad.ToString();
            string vsego = number.ToString();
            
            StreamWriter SW = new StreamWriter(new FileStream("3.txt", FileMode.Create, FileAccess.Write));
            SW.Write(verno);
            SW.Close();
 
            StreamWriter SW1 = new StreamWriter(new FileStream("4.txt", FileMode.Create, FileAccess.Write));
            SW1.Write(neverno);
            SW1.Close();
 
            StreamWriter SW2 = new StreamWriter(new FileStream("5.txt", FileMode.Create, FileAccess.Write));
            SW2.Write(vsego);
            SW2.Close();
        }
    }
Это форма девять. Код такой же, но читает только первый вопрос и все, дальше не хочет загружать вопросы.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
namespace WindowsFormsApp2
{
    using System.IO;
    public partial class Form9 : Form
    {
        public Form9()
        {
            InitializeComponent();
 
        }
        int number = 0;//номер файла 
        string right = "";//правильный ответ
        const int all = 25;//количество вопроссов
 
        void Find(int file_number)
        {
 
 
            DirectoryInfo directoryInfo = new DirectoryInfo("Form9");
            if (directoryInfo.Exists)
 
            {
 
                FileInfo[] fileInfos = directoryInfo.GetFiles();
                System.IO.FileInfo f = new System.IO.FileInfo(fileInfos[file_number].FullName);
 
 
                if (f.Exists)
                    using (System.IO.StreamReader sr = new System.IO.StreamReader
                        (f.FullName, Encoding.GetEncoding("windows-1251")))
                    {
 
                        string str = "";
                        string s = "";
                        while ((s = sr.ReadLine()) != null)
                        {
                            str += s + "@";
                        }
                        string[] split = str.Split('@');
                        label1.Text = split[0];
                        right = split[5];
                        Random r = new Random();
                        int t = r.Next(5);
                        if (t == 0)
                        {
                            radioButton1.Text = split[5];
                            radioButton2.Text = split[1];
                            radioButton3.Text = split[2];
                            radioButton4.Text = split[3];
                            radioButton5.Text = split[4];
                        }
                        else if (t == 1)
                        {
                            radioButton1.Text = split[1];
                            radioButton2.Text = split[5];
                            radioButton3.Text = split[2];
                            radioButton4.Text = split[3];
                            radioButton5.Text = split[4];
                        }
                        else if (t == 2)
                        {
                            radioButton1.Text = split[2];
                            radioButton2.Text = split[1];
                            radioButton3.Text = split[5];
                            radioButton4.Text = split[3];
                            radioButton5.Text = split[4];
                        }
                        else if (t == 3)
                        {
                            radioButton1.Text = split[3];
                            radioButton2.Text = split[1];
                            radioButton3.Text = split[2];
                            radioButton4.Text = split[5];
                            radioButton5.Text = split[4];
                        }
                        else
                        {
                            radioButton1.Text = split[4];
                            radioButton2.Text = split[1];
                            radioButton3.Text = split[2];
                            radioButton4.Text = split[3];
                            radioButton5.Text = split[5];
                        }
                    }
            }
        }
 
        private void Form1_Shown(object sender, EventArgs e)
        {
            radioButton1.Checked = false;
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            Find(number);
        }
        static int pravilno = 0; static int bad = 0;
 
 
        private void button2_Click(object sender, EventArgs e)
        {
            RadioButton[] RB = { radioButton1, radioButton2, radioButton3, radioButton4, radioButton5 };
 
            foreach (RadioButton rb in RB)
            {
                if (rb.Checked && rb.Text == right) ++pravilno;
            }
            foreach (RadioButton rb in RB)
            {
                if (!rb.Checked && rb.Text == right) bad++;
            }
 
            number++;
            if (number < all)
            {
                foreach (RadioButton rb in RB)
                {
                    rb.Checked = false;
                }
 
                Find(number);
            }
 
            else
            {
                Form6 f6 = new Form6();
                f6.Show();
                this.Hide();
            }
 
            string verno = pravilno.ToString();
            string neverno = bad.ToString();
            string vsego = number.ToString();
 
            StreamWriter SW = new StreamWriter(new FileStream("3.txt", FileMode.Create, FileAccess.Write));
            SW.Write(verno);
            SW.Close();
 
            StreamWriter SW1 = new StreamWriter(new FileStream("4.txt", FileMode.Create, FileAccess.Write));
            SW1.Write(neverno);
            SW1.Close();
 
            StreamWriter SW2 = new StreamWriter(new FileStream("5.txt", FileMode.Create, FileAccess.Write));
            SW2.Write(vsego);
            SW2.Close();
        }
    }
}
0
 Аватар для Shogun31337
557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
20.06.2018, 20:11
Ну так если код форм одинаковый значит дело не в нем. Проверяйте файлы
0
0 / 0 / 0
Регистрация: 15.05.2018
Сообщений: 8
20.06.2018, 20:16  [ТС]
Файлы тоже одинаковые, только содержимое разное
0
3566 / 2507 / 1174
Регистрация: 14.08.2016
Сообщений: 8,219
20.06.2018, 21:47
судя по коду и в форме7 тоже выводится только один, первый вопрос
по идее должно быть так
C#
1
2
3
4
5
6
7
8
                        if (t == 0)
                        {
                            radioButton1.Text = split[5 + 6*file_number];
                            radioButton2.Text = split[1 + 6*file_number];
                            radioButton3.Text = split[2 + 6*file_number];
                            radioButton4.Text = split[3 + 6*file_number];
                            radioButton5.Text = split[4 + 6*file_number];
                        }
и т.д.
на кой столько форм?
на кой конкатенировать строки, что бы потом разбивать сплитом?
в 40й строке тоже + 6*..., по аналогии
0
0 / 0 / 0
Регистрация: 15.05.2018
Сообщений: 8
20.06.2018, 22:03  [ТС]
Этот код был взят с форума, еще когда я начала знакомиться с с#. В объяснениях к коду было сказано, что так ответы становятся рандомными.
Ваш предложенный вариант тоже не работает. В форме 7 все работает как надо.
Может ли это быть из-за переполнения памяти?
0
3566 / 2507 / 1174
Регистрация: 14.08.2016
Сообщений: 8,219
20.06.2018, 22:42
Лучший ответ Сообщение было отмечено Лес тут как решение

Решение

скачал, посмотрел...
у тебя сама кнопка ничего не делает,
подпиши метод buttonX_click() на событие клика по кнопке
1
0 / 0 / 0
Регистрация: 15.05.2018
Сообщений: 8
20.06.2018, 22:59  [ТС]
Спасибо, теперь работает!

Добавлено через 1 минуту
Shogun31337, и Вам спасибо за готовность помочь!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.06.2018, 22:59
Помогаю со студенческими работами здесь

При нажатии на кнопку одной формы, что-либо записывается в TextBox другой формы
Я хочу чтобы нажав на кнопку своей второй формы, какой то текст записался в поле первой формы помогите пожалуйста: private void...

Редактирование объектов на одной форме при нажатии кнопки на другой
Помогите пожалуйста. Нужно сделать так чтобы при нажатии кнопки на одной форме редактировались обьекты на другой. У меня есть 1 форма на...

Как при нажатии одной кнопки сделать "нажатие" другой кнопки?
Как скажем при нажатии одной кнопки сделать &quot;нажатие&quot; другой кнопки? Именно чтобы была анимация нажатия другой кнопки, а не вызов метода...

Как перейти с одной формы на другую при нажатии кнопки
Есть форма Допустим Form1,и на ней есть кнопка(button1) при нажатии на которую она должна перейти на уже созданую Form2. Можете...

Как написать ссылку из одной формы в другую (при нажатии кнопки)
Как написать ссылку из одной формы в другую (при нажатии кнопки)


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru