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

Несколько условий в одном if

13.11.2017, 12:46. Показов 11386. Ответов 4

Студворк — интернет-сервис помощи студентам
Доброго времени суток.
Ситуация такая(только тапками не кидайте...):
Окно логин +пароль.
Логин при загрузке выдается рандомно в textBox1, но из созданного списка
C#
1
2
3
4
5
6
7
8
9
10
11
12
    public partial class login : Form
    {
        public login()
        {
            InitializeComponent();
        }
        Microsoft.Win32.RegistryKey key; 
 
        Random r = new Random();
        String[] words = {  //100
                         "EE9wf2cVGHcMr4jI24mk",//200
}; //900
Пароль textBox2 привязан к логину
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
        private void button1_Click(object sender, EventArgs e) //ставим пароли и сохраняем в реестр
 
            if (textBox1.Text == "EE9wf2cVGHcMr4jI24mk") //2
            {
                if (textBox2.Text == "200")
                {
                    f1.ShowDialog();
                    this.Hide();
                }
 
                else
                    MessageBox.Show("НЕ ВЕРНЫЙ КЛЮЧ");
            }
            key = Microsoft.Win32.Registry.CurrentUser.CreateSubKey("MyRegKey");
            key.SetValue(textBox1.Text, textBox2.Text);
            key.Close();
При правильном сочетании логина и пароля открывается новая форма. А введеная связка логин +пароль вносятся в реестр и при следующем запуске программы не должны спрашиваться
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
        private void login_Load(object sender, EventArgs e) 
        {
            int index = r.Next(words.Length - 1); //выдается логин из списка
            textBox1.Text = words[index].ToString();
 
            key = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("MyRegKey", true);
            {
                    if ((key.GetValue("bCjRjUcfC06L5WMz1FGN").ToString() == "100" || (key.GetValue("EE9wf2cVGHcMr4jI24mk").ToString() == "200")) // по всякому пробовали
)
                    {
                        this.Hide();
                        f1.ShowDialog();
                    }
                    if (key.GetValue("EE9wf2cVGHcMr4jI24mk").ToString() == "200")
                    {
                        this.Hide();
                        f1.ShowDialog();
                    }
Проблема в том, что при загрузке приложения проверяется только первая связка if
Как запустить цикл на проверку всех связок, и если хоть одна совпадает с занесенной в реест, то пускать в программу без ввода пароля повторно?

ПС: на скриншоте видно, что в реестре есть связка, но просит ввести ключ, потому что первая в проверка другая связка. если оставить к коде только ее, то при проверке пускает прекрасно
Миниатюры
Несколько условий в одном if  
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.11.2017, 12:46
Ответы с готовыми решениями:

Несколько условий в одном if
например в паскале можно if (a>b)and(a<10) в с++ как этосделать?

Несколько условий в одном IF
Есть функция int settings(int *life_time, int *cur_yea, int *cur_mon, int *cur_day) { char slovo; long fail_long=0;//...

Несколько условий в одном столбце
Всем привет. Такой вопрос. Необходимо сделать выборку всех столбцов из таблицы, но по нескольким параметрам. (в данном случае по трем)...

4
3 / 3 / 2
Регистрация: 31.10.2017
Сообщений: 35
13.11.2017, 14:39  [ТС]
Если вынести сравнение на кнопку

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
        private void button2_Click(object sender, EventArgs e)
        {
            key = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("MyRegKey");
 
            if (key.GetValue("bCjRjUcfC06L5WMz1FGN").ToString() == "100") //здесь ошибка
            {
                this.Hide();
                f1.ShowDialog();
            }
 
            if (key.GetValue("EE9wf2cVGHcMr4jI24mk").ToString() == "200")
            {
 
                this.Hide();
                f1.ShowDialog();
            }
то дает ошибку "System.NullReferenceException: "Ссылка на объект не указывает на экземпляр объекта."
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18307 / 14231 / 5368
Регистрация: 17.03.2014
Сообщений: 28,904
Записей в блоге: 1
13.11.2017, 15:15
Лучший ответ Сообщение было отмечено ZanydaZanydnaya как решение

Решение

Цитата Сообщение от ZanydaZanydnaya Посмотреть сообщение
то дает ошибку "System.NullReferenceException: "Ссылка на объект не указывает на экземпляр объекта."
Правильно. Ведь указанного ключа в реестре нет и поэтому метод GetValue возвращает null. Нужно проверять на null или передавать значение по умолчанию вторым аргументом.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
private void button2_Click(object sender, EventArgs e)
{
    bool show = false;
    using (var key = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("MyRegKey"))
    {
        if (
            key.GetValue("bCjRjUcfC06L5WMz1FGN", "").ToString() == "100"
            || key.GetValue("EE9wf2cVGHcMr4jI24mk", "").ToString() == "200")
        {
            show = true;
        }
    }
 
    if (show)
    {
        this.Hide();
        f1.ShowDialog();
    }
}
1
3 / 3 / 2
Регистрация: 31.10.2017
Сообщений: 35
13.11.2017, 15:25  [ТС]
OwenGlendower, ААА"!! магия!
огромные спасибки!
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18307 / 14231 / 5368
Регистрация: 17.03.2014
Сообщений: 28,904
Записей в блоге: 1
13.11.2017, 15:26
ZanydaZanydnaya, никакой магии. Логика и здравый смысл.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.11.2017, 15:26
Помогаю со студенческими работами здесь

Как задать несколько условий в одном цикле
Здравствуйте, подскажите, пожалуйста, кто знает, как задать несколько условий в одном цикле? Например, сгенерировать текие четыре числа,...

Как прописать несколько условий при ИСТИНА и несколько условий при ЛОЖЬ?
Всем доброго времени суток. If & Else как прописать несколько условий при ИСТИНА и несколько условий при ЛОЖЬ ? Напр В11:С18...

В одном if множество условий
Нужно в одном if поместить несколько условий. Вот мой код: if (ListBox1->ItemIndex==1) {...

Несколько сайтов на одном IP и одном OpenServer
Есть OpenServer, на котором стоят два сайта. Можно ли привязать один домен к одному сайту OpenServer, а другой домен к другому? (Оба сайта...

Оператор условия и запись нескольких условий в одном
Здравствуйте! Осваиваю матлаб, возник вот какой вопрос: подскажите пожалуйста, как правильно записать, чтобы при попадании переменной в...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru