Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/2: Рейтинг темы: голосов - 2, средняя оценка - 4.50
awp-sirius
58 / 58 / 41
Регистрация: 01.05.2012
Сообщений: 518
1

Выполнение определенных действий в зависимости от введенной цифры (Console)

15.04.2014, 20:47. Просмотров 423. Ответов 5
Метки нет (Все метки)

Перерыл интернет, но толком и не нашёл примера нужной мне реализации..

Пользователю предлагается 3 варианта событий. И соответственно ввести 1, 2 или 3.
Сначала сделал просто типо string name = Console.ReadLine(), но тогда приходится вводить цифру, потом нажимать Enter, А хотелось бы что бы сразу.

После мучений и прогулок по msdn реализовал следующим образом:

C#
1
2
3
4
5
6
7
8
9
10
11
            ConsoleKeyInfo name;
            do
            {
                Console.WriteLine("\nДля шифрования текста нажмите: 1\nДля дешифрования шифр-текста нажмите: 2\nДля шифрования и последующего расшифрования нажмите: 3");
                name = Console.ReadKey(true);
                if (name.KeyChar != '1' && name.KeyChar != '2' && name.KeyChar != '3') Console.WriteLine("\nВведено некоректное значение!\n");
            } while ((name.KeyChar != '1') && (name.KeyChar != '2') && (name.KeyChar != '3'));
 
            if (name.KeyChar != '2') Encryption(massKey, Report);
 
            if (name.KeyChar != '1') Decryption(massKey, Report);
Работает всё прекрасно, просто стало интересно, может есть более простой способ)
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.04.2014, 20:47
Ответы с готовыми решениями:

Выполнение программой определенных действий до начала ее основной работы
Подскажите у меня есть программа допустим View.exe она постоянно обновляется и постоянно...

Голосовая активация - распознание команды с микрофона и выполнение определенных действий
Добрый день! Хочу сделать голосовую активацию: 1. Создам запись голосовой команды 2. Нужно...

Выполнение действий в зависимости от классификации символа
Введите целое число. Если соответствующий символ является разделителем, выведите следующий символ,...

Выполнение действий в зависимости от введенной даты
помогите составить код по следующему алгоритму: проверяется текущая дата. если дата равна какой...

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

5
kirdenoff
17 / 17 / 8
Регистрация: 21.10.2011
Сообщений: 113
19.04.2014, 23:35 2
Как вариант, можно подписаться на событие KeyPress, потом проверить, какая кнопка нажата и выполнить нужные действия. Получится примерно то же, что и у Вас. Только я бы реализовал через switch/case, если больше двух кнопок проверять нужно.

Добавлено через 5 минут
Ниже приведён пример обработки события KeyDown для графика. Тут при нажатии определённых кнопок график поворачивается и масштабируется.
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
        private void chart_KeyDown(object sender, KeyEventArgs e)
        {
            switch (e.KeyCode)
            {
                case Keys.X: a -= 0.01; 
                    break;
                case Keys.C: a += 0.01; 
                    break;
                case Keys.V: c -= 0.01; 
                    break;
                case Keys.B: c += 0.01; 
                    break;
                case Keys.Q: ga += 5; 
                    break;
                case Keys.W: ga -= 5; 
                    break;
                case Keys.Add: _zoom=_zoom*0.9; 
                    break;
                case Keys.Subtract: _zoom=_zoom*1.1; 
                    break;
                case Keys.A: _yCoord += 0.15; 
                    break;
                case Keys.Z: _yCoord -= 0.15; 
                    break;
                case Keys.O: _xCoord -= 0.15; 
                    break;
                case Keys.P: _xCoord += 0.15; 
                    break;
            }
            DrawGraph();
        }
0
insite2012
Модератор
Эксперт .NET
4878 / 3831 / 1096
Регистрация: 12.10.2013
Сообщений: 11,100
Записей в блоге: 2
19.04.2014, 23:46 3
Цитата Сообщение от kirdenoff Посмотреть сообщение
можно подписаться на событие KeyPress
У ТС консоль, как я понял, а там такого события нет...
0
Psilon
Master of Orion
Эксперт .NET
6025 / 4877 / 903
Регистрация: 10.07.2011
Сообщений: 14,477
Записей в блоге: 5
Завершенные тесты: 4
19.04.2014, 23:47 4
awp-sirius,
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
ConsoleKeyInfo name;
            do
            {
                Console.WriteLine("\nДля шифрования текста нажмите: 1\nДля дешифрования шифр-текста нажмите: 2\nДля шифрования и последующего расшифрования нажмите: 3");
                name = Console.ReadKey(true);
                if (name.KeyChar != '1' && name.KeyChar != '2' && name.KeyChar != '3') Console.WriteLine("\nВведено некоректное значение!\n");
            } while ((name.KeyChar != '1') && (name.KeyChar != '2') && (name.KeyChar != '3'));
switch(name.KeyChar)
{
   case '1': ... break;
   case '2': ... break;
   case '3': ... break;
}
0
Wolfdp
886 / 793 / 205
Регистрация: 15.06.2012
Сообщений: 3,127
Записей в блоге: 1
Завершенные тесты: 1
20.04.2014, 05:46 5
про дикшинори я один подумал?
0
awp-sirius
58 / 58 / 41
Регистрация: 01.05.2012
Сообщений: 518
20.04.2014, 08:26  [ТС] 6
Psilon, спасибо, но с if мне кажется очень даже классно, тем более работает так как надо.
если 1 - выполняется только первое действие
если 2 - выполняется второе
а если 3, то выполняются оба (как мне и надо)

У меня вопрос стоял в первую очередь про
C#
1
2
3
4
5
6
7
            ConsoleKeyInfo name;
            do
            {
                Console.WriteLine("\nДля шифрования текста нажмите: 1\nДля дешифрования шифр-текста нажмите: 2\nДля шифрования и последующего расшифрования нажмите: 3");
                name = Console.ReadKey(true);
                if (name.KeyChar != '1' && name.KeyChar != '2' && name.KeyChar != '3') Console.WriteLine("\nВведено некоректное значение!\n");
            } while ((name.KeyChar != '1') && (name.KeyChar != '2') && (name.KeyChar != '3'));
через ConsoleKeyInfo и KeyChar?
0
20.04.2014, 08:26
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.04.2014, 08:26

Выполнение определенных действий на сайте
Всем привет! Я новичок на КиберФоруме, никак не решался зарегистрироваться здесь, но вот все-таки...

Выполнение определенных действий в заданное время
Доброго времени суток! Стало интересно, возможно ли как то заставить программу выполнять какое...

Выполнение определенных действий в заданное время
есть форма , таймер, лейбел 1. В таймере прописываем Label1.Caption:=TimeToStr(Time); допустим...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru