Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
vorastra
0 / 0 / 0
Регистрация: 25.12.2017
Сообщений: 9
#1

Одинаковая проверка на нажатие клавиш для нескольких элементов Windows Forms

10.01.2018, 20:07. Просмотров 129. Ответов 2
Метки нет (Все метки)

Здравствуйте. У меня есть окно, в котором в нескольких элементах нужно провести проверку на вводимые символы, и чтобы они оказались только числами, а также на работу с backspace. Однако если с одного элемента в другой скопировать проверку, она во втором не сработает. Как сделать так, чтобы проверку на нажатие одной и той же клавиши можно было провести в нескольких элементах?

NumericUpDown не использую ибо по заданию нужна работа с TextBox.

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
using System;
using System.Windows.Forms;
 
namespace WindowsFormsApp1
{
    public partial class FuncSol : Form
    {
        public FuncSol()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            if (!string.IsNullOrEmpty(deposit.Text) && !string.IsNullOrEmpty(time.Text))
            {
                double result;
                double percent = Convert.ToDouble(time.Text) / 100;
                if (Convert.ToInt32(time.Text) > 12)
                    percent += 0.02;
                result = Convert.ToDouble(deposit.Text);
                result += result * percent;
                res.Text = Convert.ToString(result);
            }
            else
                res.Text = "Введіть спочатку значения";
        }
 
        private void deposit_KeyPress(object sender, KeyPressEventArgs e)
        {
            if ((e.KeyChar<= 47 || e.KeyChar >= 58) && e.KeyChar != 8)
            {
                e.Handled = true;
            }
        }
 
        private void time_KeyPress(object sender, KeyPressEventArgs e)
        {
 
            if ((e.KeyChar <= 47 || e.KeyChar >= 58) && e.KeyChar != 8)
            {
                e.Handled = true;
            }
        }
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.01.2018, 20:07
Ответы с готовыми решениями:

Нажатие нескольких клавиш
В форме понадобилось обрабатывать нажатие сразу нескольких клавиш, допустим не...

Hover-leave эффект для элементов Windows.Forms
Здравствуйте. Есть форма (диалоговое окно), с 3 элементами управления...

Нажатие клавиш в неактивное приложение (спам бот для свёрнутой игры)
Доброго времени суток! Стоит сказать что я не давно отошёл от &quot;Hello, World!&quot;...

Прорисовка элементов в Windows Forms
Как сделать прорисовку кнопок ( закрыть, свернуть, развернуть ) ?? И прочее!

Программа для решения квадратных уравнений, переписать для Windows Forms
1) class Program { static void Main(string args) { ...

2
ViterAlex
6413 / 3613 / 1482
Регистрация: 11.02.2013
Сообщений: 7,964
Завершенные тесты: 3
10.01.2018, 20:17 #2
Не нужно копировать. Назначь им один и тот же обработчик нажатий
0
vorastra
0 / 0 / 0
Регистрация: 25.12.2017
Сообщений: 9
10.01.2018, 20:32  [ТС] #3
Цитата Сообщение от ViterAlex Посмотреть сообщение
Назначь им один и тот же обработчик нажатий
А как, собственно, сделать это? Я понял лишь как в одном элементе запустить обработчик, НазваниеЭлемента_[keypress, keydown, keyup]

Добавлено через 9 минут
Всё, понял, спасибо, напротив каждого в событиях поставил свой обработчик.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.01.2018, 20:32

Проверка на нажатие клавиш
Пишу в MS Visual C++ программу. Суть такова, что у меня есть функция_1,...

Проверка на нажатие клавиш
Приветствую! Меня интересует вопрос, вот у меня есть программка: import...

Послать приложению нажатие нескольких клавиш разом
Здравствуйте! Скажите, возможно ли используя SendMessage/PostMessage -...


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

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

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