Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.81/27: Рейтинг темы: голосов - 27, средняя оценка - 4.81
MrGladus
172 / 172 / 50
Регистрация: 06.01.2013
Сообщений: 392
1

Как отловить нажатие ctrl+v ctrl+c ctrl+x key_Press

17.02.2013, 14:56. Просмотров 5010. Ответов 6
Метки нет (Все метки)

Как правильно отловить нажатие ctrl+v ctrl+c ctrl+x в событии key_Press?
я пробую так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
private void textBox_ServerIP_KeyPress(object sender, KeyPressEventArgs e)
        {
            if ((e.KeyChar == (Char)Keys.V) && (ModifierKeys == Keys.Control))
            {
                textBox_ServerIP.Paste();
                e.Handled = true;
            }
            else if ((e.KeyChar == (Char)Keys.C) && (ModifierKeys == Keys.Control))
            {
                textBox_ServerIP.Copy();
                e.Handled = true;
            }
            else if ((e.KeyChar == (Char)Keys.X) && (ModifierKeys == Keys.Control))
            {
                textBox_ServerIP.Cut();
                e.Handled = true;
            }            
        }
Что-то не получается пока...
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.02.2013, 14:56
Ответы с готовыми решениями:

Как отловить нажатие CTRL+Z?
Как отловить нажатие CTRL+Z?

Как обработать событие ctrl + нажатие кнопки
Добрый день, перечитал все связаные темы тут, никак не могу реализовать. Как обработать...

Обработать нажатие DEL и Ctrl+V
Ребята помогите пожалуйста!!!!! у меня такая проблема, мне нужно чтобы у меня распознавалась...

Программное нажатие Ctrl+S в стороннем ПО
Добрый день! Вопрос собственно в заголовке :) Помогите написать код, который будет каждые 15 сек....

Как назначить горячую клавишу на ctrl+s
Главный вопрос:Как сделать горячею клавишу на ctrl+s (будет сохранение)? Второстепенный: и еще...

6
n1l
135 / 137 / 18
Регистрация: 26.07.2010
Сообщений: 911
17.02.2013, 14:59 2
В одном суловии совместите отлов нажатия клавиш.
Цитата Сообщение от MrGladus Посмотреть сообщение
e.KeyChar == (Char)Keys.С && e.KeyChar == (Char)Keys.V
Может быть сработает.
0
kolorotur
Эксперт .NET
11478 / 9300 / 2371
Регистрация: 17.09.2011
Сообщений: 15,943
Завершенные тесты: 1
17.02.2013, 15:03 3
Цитата Сообщение от MrGladus Посмотреть сообщение
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
            if ((e.KeyChar == (Char)Keys.V) && (ModifierKeys == Keys.Control))
            {
                textBox_ServerIP.Paste();
                e.Handled = true;
            }
            else if ((e.KeyChar == (Char)Keys.C) && (ModifierKeys == Keys.Control))
            {
                textBox_ServerIP.Copy();
                e.Handled = true;
            }
            else if ((e.KeyChar == (Char)Keys.X) && (ModifierKeys == Keys.Control))
            {
                textBox_ServerIP.Cut();
                e.Handled = true;
            }
Ммм... А зачем делать то, что уже реализовано по умолчанию в текст боксе?
0
MrGladus
172 / 172 / 50
Регистрация: 06.01.2013
Сообщений: 392
17.02.2013, 15:13  [ТС] 4
Цитата Сообщение от kolorotur Посмотреть сообщение
Ммм... А зачем делать то, что уже реализовано по умолчанию в текст боксе?
Прошу прощения, не могли бы вы указать как оно по умолчанию реализовано. Я где не искал везде в коде отлавливается нажатие ctrl+v ctrl+c ctrl+x.
0
n1l
135 / 137 / 18
Регистрация: 26.07.2010
Сообщений: 911
17.02.2013, 15:15 5
Да просто выделяете значение в текстбоксе и нажимаете Cntrl+C и т.д.
0
MrGladus
172 / 172 / 50
Регистрация: 06.01.2013
Сообщений: 392
17.02.2013, 15:19  [ТС] 6
Тут маленькое но... Вот полный код события. Цель разрешить ввод только цифр и точки, для ввода корректного IP. Поэтому все остальные нажатия приводят к e.Handled = true;
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 textBox_ServerIP_KeyPress(object sender, KeyPressEventArgs e)
        {
            if ((e.KeyChar == (Char)Keys.V) && (ModifierKeys == Keys.Control))
            {
                textBox_ServerIP.Paste();
                e.Handled = true;
            }
            else if ((e.KeyChar == (Char)Keys.C) && (ModifierKeys == Keys.Control) )
            {
                textBox_ServerIP.Copy();
                e.Handled = true;
            }
            else if ((e.KeyChar == (Char)Keys.X) && (ModifierKeys == Keys.Control))
            {
                textBox_ServerIP.Cut();
                e.Handled = true;
            }
            else if ( (!(Char.IsDigit(e.KeyChar)) && !((e.KeyChar == '.')  && (textBox_ServerIP.Text.Length != 0))) )
            {
                if (e.KeyChar != (char)Keys.Back)
                    e.Handled = true;
            }
        }
0
kolorotur
Эксперт .NET
11478 / 9300 / 2371
Регистрация: 17.09.2011
Сообщений: 15,943
Завершенные тесты: 1
17.02.2013, 16:36 7
Цитата Сообщение от MrGladus Посмотреть сообщение
Цель разрешить ввод только цифр и точки, для ввода корректного IP.
Для этих целей лучше используйте MaskedTextBox - он позволяет задать маску для ввода, чтобы вам вручную не отслеживать валидность вводимых данных.
0
17.02.2013, 16:36
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.02.2013, 16:36

Как обработать события Ctrl+клик мыши
В задании сказано, что если на форме при нажатии на левую кнопку мыши была нажата ctrl то...

Как заблокирвоать комбинацию ctrl+alt+del?
Собственно вопрос в названии. Ни что из того что я нашёл в интернете не помогло - оно по сути...

Ctrl+Enter
нажатие клавиши Ctrl +Enter. Сделал так но почему то не работает... SendKeys.Send("^(ENTER)");


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

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

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