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

Цифры калькулятора по нажатию клавиши

23.10.2019, 16:57. Показов 2028. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет, ребят, вот кусок программы по нажатию кнопок калькулятора, а именно, десяти цифр. Очень хотелось бы сделать так, чтобы эти кнопки могли нажиматься и по нажатию клавиш, потому как сейчас этого не происходит. Заранее спасибо!

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
private void buttonDigit_Click(object sender, EventArgs e)          
            {
                // Кнопка, нажатая пользователем
                Button b = (Button)sender;
                // Тег кнопки в виде строки
                string tag = (string)b.Tag;
                // Цифра в виде целого числа
                double digit = double.Parse(tag);
                // Изменение значения
                if (NewNumber)
                {
                    x = digit;
                    NewNumber = false;
                }
                else if (PointPres)
                {
                    x += digit / Math.Pow(10, ++factor);
                }
                else
                {
                    x = x * 10 + digit;
                }
            }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.10.2019, 16:57
Ответы с готовыми решениями:

Включать курсор при нажатии левой клавиши, а выключать по нажатию правой клавиши мыши
Нужно: Включать курсор при нажатии левой клавиши, а выключать по нажатию правой клавиши мыши. Почему не работает? И что сделать, чтобы...

Добавление текстбоксов по нажатию клавиши и удаление по нажатию другой кнопки
Всем доброго времени суток. Хотел попросить помощи в написании следующего кода. Кое что набросал, но не работает при удалении...

Программа, которая по нажатию клавиши r или к рисует красный прямоугольник, а по нажатию q или й завершает работу
по нажатию клавиши r или к рисует красный прямоугольник, а по нажатию q или й завершает работу. program fg; uses crt, GraphABC; ...

6
182 / 145 / 94
Регистрация: 30.07.2013
Сообщений: 579
23.10.2019, 17:11
Вынесите этот код в отдельный метод, принимающий аргумент digit:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// Изменение значения
        private void ChangeValue(double digit)
            {    
                if (NewNumber)
                {
                    x = digit;
                    NewNumber = false;
                }
                else if (PointPres)
                {
                    x += digit / Math.Pow(10, ++factor);
                }
                else
                {
                    x = x * 10 + digit;
                }
            }
и вызывайте его из двух обработчиков - события нажатия на кнопку мышью и события KeyDown
0
 Аватар для Enifan
1846 / 1188 / 501
Регистрация: 14.10.2018
Сообщений: 3,209
23.10.2019, 17:15
Цитата Сообщение от MaximKravtsov Посмотреть сообщение
хотелось бы сделать так, чтобы эти кнопки могли нажиматься
эм ?
0
 Аватар для Sanya_sa
912 / 816 / 333
Регистрация: 03.02.2015
Сообщений: 5,276
Записей в блоге: 9
23.10.2019, 17:25
Для примера и наглядности:
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
/// <summary>
/// Основная форма приложения
/// </summary>
public partial class MainForm : Form
{
    private double K = 0.0;
    private double A = 0.0;
 
    /// <summary>
    /// Основная форма приложения
    /// </summary>
    public MainForm()
    {
        InitializeComponent();
    }
 
    private void button1_Click(object sender, EventArgs e)
    {
        A = K + 1.0;
        K = A * 10.0;
        label1.Text = A.ToString();
    }
 
    private void button2_Click(object sender, EventArgs e)
    {
        A = K + 2.0;
        K = A * 10.0;
        label1.Text = A.ToString();
    }
 
    private void button3_Click(object sender, EventArgs e)
    {
        A = K + 3.0;
        K = A * 10.0;
        label1.Text = A.ToString();
    }
 
    private void button4_Click(object sender, EventArgs e)
    {
        K = 0.0;
        A = 0.0;
        label1.Text = A.ToString();
    }
}
Миниатюры
Цифры калькулятора по нажатию клавиши  
0
0 / 0 / 0
Регистрация: 23.10.2019
Сообщений: 2
23.10.2019, 17:39  [ТС]
а как осуществить метод нажатия кнопки
0
 Аватар для Sanya_sa
912 / 816 / 333
Регистрация: 03.02.2015
Сообщений: 5,276
Записей в блоге: 9
23.10.2019, 17:53
Цитата Сообщение от MaximKravtsov Посмотреть сообщение
а как осуществить метод нажатия кнопки
А что Вы под этим понимаете?
0
 Аватар для Aferuga
644 / 528 / 324
Регистрация: 20.05.2015
Сообщений: 1,469
24.10.2019, 04:38
Цитата Сообщение от MaximKravtsov Посмотреть сообщение
а как осуществить метод нажатия кнопки
Я так понимаю имеется ввиду по нажатии клавишы 1 на клавиатуре активировать кнопку 1 и т д
Если да то как-то так:
Кликните здесь для просмотра всего текста
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
        private void Form1_KeyDown(object sender, KeyEventArgs e)
        {
 
            Button but=null;
 
                switch (e.KeyCode)
                {
                case Keys.F1:
                case Keys.D1:
                case Keys.NumPad1 ://все значения
                    {
                        but = button1_1;  //button1_Click()
                    } 
                    break;
                case Keys.F2:
                case Keys.D2:
                case Keys.NumPad2://все значения
                    {
                        but = button1_2;
                    }  
                    break;
                case Keys.F3:
                case Keys.D3:
                case Keys.NumPad3://все значения
                    {
                        but = button1_3;
                    }
                    break;
                case Keys.F4:
                case Keys.D4:
                case Keys.NumPad4://все значения
                    {
                        but = button1_4;
                    }
                    break;
 
                case Keys.F5:
                case Keys.D5:
                case Keys.NumPad5://все значения
                    {
                        but = button1_5;
                    }
                    break;
 
                case Keys.F6:
                case Keys.D6:
                case Keys.NumPad6://все значения
                    {
                        but = button1_6;
                    }
                    break;
                case Keys.F7:
                case Keys.D7:
                case Keys.NumPad7://все значения
                    {
                        but = button1_7;
                    }
                    break;
                case Keys.F8:
                case Keys.D8:
                case Keys.NumPad8://все значения
                    {
                        but = button1_8;
                    }
                    break;
                case Keys.F9:
                case Keys.D9:
                case Keys.NumPad9://все значения
                    {
                        but = button1_9;
                    }
                    break;
                case Keys.F10:
                case Keys.D0:
                case Keys.NumPad0://все значения
                    {
                        but = button1_10;
                    }
                    break;
                case Keys.Enter:
                case Keys.Oemplus:
                    {
                        but = button5;
                    }
                    break;
                case Keys.Back:
                case Keys.OemMinus:
                case Keys.Delete:
 
                    {
                        but = button7;
                    }
                    break;
                }
                if (but!=null)
                but.PerformClick();
        }

З. Ы. Предварительно нужно установить свойство KeyPreview для формы в true
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.10.2019, 04:38
Помогаю со студенческими работами здесь

клавиши для калькулятора
Ситуация такая: написал калькулятор, теперь хочу что бы с клавиатуры осуществлялся набор цифр от 0 - 9 и символу +-*/. Циферные кнопки...

Событие по нажатию клавиши
Доброго времени суток. Нужно создать событие по нажатии enter: Procedure TForm1.KeyDown(Sender: TObject; var Key: Word; Shift:...

Событие по нажатию клавиши
Здравствуйте. Помогите разобраться как сделать, чтобы при нажатии клавиши ESC выдавало сообщение. void __fastcall...

Действие по нажатию клавиши
Visual c++. Есть строка и кнопка. По нажатию на кнопку, то что введено в строке добавляется в переменную. Как обеспечить сохранение данных...

Выход по нажатию клавиши
Здравствуйте! Как выйти из цикла по нажатию клавиши в python 3.4.1.? Знаю что подобные темы были, но решение в них так и не нашел. Да и...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru