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

Глобальные переменные и передача значений между формами

16.04.2017, 11:18. Показов 2484. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
неправильно проверяет капчу, и как лучше передать логин в другую для работы
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
public partial class formProfile : Form
    {
        public formProfile()
        {
            InitializeComponent();
        }
 
        private string textCaptcha = String.Empty;
        private string path = @"C:\Users\Augustxeno\Desktop\code pr\технология программирования\биоритмы\биоритмы\прочие каталоги\userList.txt";
        private Bitmap CreateImage(int Width, int Height)
        {
            Random rnd = new Random();
            //создаю изображение
            Bitmap result = new Bitmap(Width, Height);
            //вычисляю позицию текста
            int Xpos = rnd.Next(0, Width - 50);
            int Ypos = rnd.Next(15, Height - 15);
            Brush[] colors = { Brushes.Black,Brushes.Red,Brushes.RoyalBlue,Brushes.Green };
            //область для рисования
            Graphics g = Graphics.FromImage((Image)result);
            //фон картинки 
            g.Clear(Color.Gray);
            string textCaptcha = String.Empty;
            string alphabet = "1234567890QWERTYUIOPASDFGHJKLZXCVBNM";
            for (int i = 0; i < 5; ++i)
                textCaptcha += alphabet[rnd.Next(alphabet.Length)];
            g.DrawString(textCaptcha,
            new Font("Arial", 15),colors[rnd.Next(colors.Length)],new PointF(Xpos, Ypos));
            //помехи и линии
            g.DrawLine(Pens.Black,
            new Point(0, 0),new Point(Width - 1, Height - 1));
            g.DrawLine(Pens.Black,new Point(0, Height - 1),new Point(Width - 1, 0));
            //Белые точки
            for (int i = 0; i < Width; ++i)
                for (int j = 0; j < Height; ++j)
                    if (rnd.Next() % 20 == 0)
                        result.SetPixel(i, j, Color.White);
            return result;
        }
 
        private void formProfile_Load(object sender, EventArgs e)
        {
            captchaPicture.Image= CreateImage(captchaPicture.Width, captchaPicture.Height);
 
        }
 
        private void captchaRefresh_Click(object sender, EventArgs e)
        {
            captchaPicture.Image = CreateImage(captchaPicture.Width, captchaPicture.Height);
        }
 
        private void textBox_Click(object sender, EventArgs e)
        {
 
        }
 
        private void parolTextAlpha_TextChanged(object sender, EventArgs e)
        {
 
        }
 
        private void captchaPicture_Click(object sender, EventArgs e)
        {
            captchaPicture.Image = CreateImage(captchaPicture.Width, captchaPicture.Height);
        }
 
 
        private void checkUser_CheckedChanged(object sender, EventArgs e)
        {
 
        }
 
        private void RegIsEnd_Click(object sender, EventArgs e)
        {
            selectAccount selAcc = new selectAccount();
            CalcFormByorhythm calcByo = new CalcFormByorhythm();
            if (checkUser.Checked == true)
            {
                Close();
                calcByo.Show();
            }
            string userRegName, userRegMail, userRegParol;
            bool userRegNameRes=false, userRegMailRes=false, userRegParolRes=false,captchaRegRes=false;
 
            userRegName = userName.Text;
            userRegParol = userParolAlpha.Text;
            userRegMail = userMail.Text;
 
            if (!searchUserList(userRegName))
            userRegNameRes = true;  
            else MessageBox.Show("пользователь с таким именем уже существует");
 
            if (!searchUserList(userRegMail))
             userRegMailRes = true; 
            else MessageBox.Show("пользователь с такой почтой уже существует");
 
            if (userParolAlpha.Text == userParolVita.Text)
            userRegParolRes = true; 
            else MessageBox.Show("пароли не совпадают");
 
            if (captcha.Text == textCaptcha)
                captchaRegRes = true;
            else MessageBox.Show("капча не совпадает");
 
            if (userRegNameRes & userRegMailRes & userRegParolRes & captchaRegRes)
            {
                MessageBox.Show("регистрация завершена");
                joinInUserList(userRegName, userRegParol, userRegMail);
                calcByo.Show();
                Close();
                
            }
        }
        private bool searchUserList(string searchInfo)
        {
            if (!File.Exists(path))
            {
                File.Create(path).Close();
                //return false;
            }
            string[] userInfoArray = File.ReadAllText(path, System.Text.Encoding.Default).Split();
            return userInfoArray.Contains(searchInfo);
        }
 
        private void joinInUserList(string userName, string userParol, string userMail)
        {
            string info = ' ' + userName + ' ' + userParol + ' ' + userMail;
            File.WriteAllText(path, info, System.Text.Encoding.Default);
        }
 
        private void buttonToSelectAccount_Click(object sender, EventArgs e)
        {
            Close();
        }
 
        private void captcha_TextChanged(object sender, EventArgs e)
        {
 
        }
    }
Вложения
Тип файла: rar биоритмы.rar (65.3 Кб, 3 просмотров)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.04.2017, 11:18
Ответы с готовыми решениями:

Передача значений между формами
У меня есть программа, по нажатию на динамически созданный пикчер, i принимает значение true и открывается 2 форма , и во второй форме...

Передача значений между формами
Нужно перенести данные из одной формы в другую. Сначала я создал статик класс в общем Program.cs using System; using...

Передача значений между формами
Не получается сделать: при нажатии на кнопку start появляется 2 формы Form2 и Form3, в Form2 мы вводим значения и жмем ОК, потом при...

10
549 / 480 / 315
Регистрация: 24.09.2013
Сообщений: 3,345
Записей в блоге: 1
16.04.2017, 14:22
Конкретно, что нужно сделать (не глядя на код)
0
0 / 0 / 2
Регистрация: 13.12.2015
Сообщений: 261
16.04.2017, 17:32  [ТС]
Цитата Сообщение от zna926 Посмотреть сообщение
Конкретно, что нужно сделать (не глядя на код)
проверить капчу, введенное в текстбоксе не совпадает с глобальной переменной textCaptcha
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18298 / 14222 / 5368
Регистрация: 17.03.2014
Сообщений: 28,900
Записей в блоге: 1
16.04.2017, 18:02
Reska, переменная textCaptcha объявленная в строке №8 называется экземплярным полем класса, а не глобальной переменной и она всегда хранит пустую строку потому что ты в неё ничего другого не записываешь т.к. в строке №23 ты объявляешь локальную переменную textCaptcha которая перекрывает поле класса. Достаточно заменить string textCaptcha = String.Empty; на textCaptcha = "";.
1
0 / 0 / 2
Регистрация: 13.12.2015
Сообщений: 261
17.04.2017, 16:26  [ТС]
похоже я все-таки не понял
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
public partial class formProfile : Form
    {
        public formProfile()
        {
            InitializeComponent();
        }
 
        private string textCaptchaSymbol = String.Empty;
        private string path = @"C:\Users\Augustxeno\Desktop\code pr\технология программирования\биоритмы\биоритмы\прочие каталоги\userList.txt";
        private Bitmap CreateImage(int Width, int Height)
        {
            Random rnd = new Random();
            //создаю изображение
            Bitmap result = new Bitmap(Width, Height);
            //вычисляю позицию текста
            int Xpos = rnd.Next(0, Width - 50);
            int Ypos = rnd.Next(15, Height - 15);
            Brush[] colors = { Brushes.Black,Brushes.Red,Brushes.RoyalBlue,Brushes.Green };
            //область для рисования
            Graphics g = Graphics.FromImage((Image)result);
            //фон картинки 
            g.Clear(Color.Gray);
            string textCaptchaSymbol = "";
            string alphabet = "1234567890QWERTYUIOPASDFGHJKLZXCVBNM";
            for (int i = 0; i < 5; ++i)
                textCaptchaSymbol += alphabet[rnd.Next(alphabet.Length)];
            g.DrawString(textCaptchaSymbol,
            new Font("Arial", 15),colors[rnd.Next(colors.Length)],new PointF(Xpos, Ypos));
            //помехи и линии
            g.DrawLine(Pens.Black,
            new Point(0, 0),new Point(Width - 1, Height - 1));
            g.DrawLine(Pens.Black,new Point(0, Height - 1),new Point(Width - 1, 0));
            //Белые точки
            for (int i = 0; i < Width; ++i)
                for (int j = 0; j < Height; ++j)
                    if (rnd.Next() % 20 == 0)
                        result.SetPixel(i, j, Color.White);
            return result;
        }
private void RegIsEnd_Click(object sender, EventArgs e)
        {
            if (captcha.Text == textCaptchaSymbol)
                captchaRegRes = true;
            else MessageBox.Show("капча не совпадает");
        }
0
 Аватар для Dr_FvKE
14 / 11 / 1
Регистрация: 16.08.2016
Сообщений: 75
17.04.2017, 17:41
Для использования переменных между формами можно использовать следующее:
C#
1
2
3
4
5
6
7
8
9
10
11
// на форме Form1
public static string nVAR = string.Empty;
 
// если эта переменная потребуется на другой форме,
// то ее можно вызвать следующим образом
 
// на форме Form2
MessageBox.Show(new Form1().nVAR);
// или
static Form1 f1 = new Form1();
MessageBox.Show(f1.nVAR);
1
0 / 0 / 2
Регистрация: 13.12.2015
Сообщений: 261
17.04.2017, 18:31  [ТС]
Цитата Сообщение от Dr_FvKE Посмотреть сообщение
Для использования переменных между формами можно использовать следующее:
остался последний вопрос с проверкой правильности введенных символов, похоже я делаю неправильно когда сверяю текстбокс с переменной textCaptchaSymbol
0
 Аватар для Dr_FvKE
14 / 11 / 1
Регистрация: 16.08.2016
Сообщений: 75
12.05.2017, 17:51
Что именно Вам кажется неправильным в этом коде? Выводятся какие-то исключения?
0
549 / 480 / 315
Регистрация: 24.09.2013
Сообщений: 3,345
Записей в блоге: 1
12.05.2017, 21:48
Передача данных между формами(например, между текстбоксами) - это 3-5 строчек кода. Тут мудрить не надо.
Можеьт эо какие-то экзотические данные.
0
 Аватар для Shogun31337
557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
12.05.2017, 22:51
Цитата Сообщение от Dr_FvKE Посмотреть сообщение
C#
1
2
3
4
5
// на форме Form2
MessageBox.Show(new Form1().nVAR);
// или
static Form1 f1 = new Form1();
MessageBox.Show(f1.nVAR);
Dr_FvKE, зачем в форме Form2 объявлять экземпляр Form1? У Вас же nVAR статическая. Для обращения к ней в форме 2 достаточно использовать такой код:
C#
1
MessageBox.Show(Form1.nVAR);
0
 Аватар для Dr_FvKE
14 / 11 / 1
Регистрация: 16.08.2016
Сообщений: 75
16.05.2017, 09:42
Прошу прощения, забылся
Но ведь я это указал в первом варианте ответа
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.05.2017, 09:42
Помогаю со студенческими работами здесь

Передача значений между формами
Доброго времени суток. Помогите пожалуйста решить задачу или натолкните хотя бы о чем почитать. Задача в том, что мне надо из нескольких...

Передача значений переменных между формами
D1973, спасибо про удаление, такая проблемка, решил переписать прогу, чтобы было более понятный интерфейс, как мне передать переменную из...

Передача значений переменных между формами
У меня есть две формы. На первой есть элемент TextBox. Из второй формы, по нажатию на кнопку, мне нужно присвоить значение текстбоксу...

Глобальные переменные - передача значения из одной формы в другую
На одном форуме нашел следующее решение: Создать отдельный модуль без форму. Объявить в нем в разделе interface нужные переменные. ...

Потоки, глобальные переменные и обмен данными между ними
Имеется два потока (А и Б) которые каждую минуту генерируют число. Также имеются две переменные (int iA, iB) и в эти переменные...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 30.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru