Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Количество нажатий клавиши при нажатом Ctrl, как отследить? 
:(
    Опции темы
Partizan
Дата 3.7.2007, 08:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

Репутация: 8
Всего: 67



Как отследить сколько раз была нажата клавиша при нажатой клавише Ctrl?

То есть если нажат Ctrl и допустим Tab делать инкремент счётчика, а при Отпускании Ctrl получать количество нажатий...

как лучше сделать?

не хочется заводить глобальную переменную для класса...


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
tol05
Дата 3.7.2007, 09:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1632
Регистрация: 21.12.2006
Где: Харьков

Репутация: 36
Всего: 170



лучше завести переменную класса, хотя бы потому, что считать нажатия ты будешь в OnKeyDown, а выводить информацию - в OnKeyUp...
но, если очень хочется (без поля класса), то можно  smile 
Код

public partial class Form1 :Form
    {
        public Form1()
        {
            InitializeComponent();

            bool pressed = false;     
            int counter = 0;
            KeyDown += delegate(object sender, KeyEventArgs e)
                                 {
                                     if(e.KeyValue == 17)
                                     {
                                         pressed = true;
                                     }
                                     if(e.KeyValue == 9 && pressed)
                                     {
                                         counter++;
                                     }
                                 };
            KeyUp += delegate(object sender, KeyEventArgs e)
                     {
                        if(e.KeyValue == 17 && pressed)
                        {
                             pressed = false;
                             Alert(counter);
                             counter = 0;
                        }
                     };
        }

        void Alert(int count)
        {
            Text = count.ToString();
        }
    }

Посмотри в ClassExplorer-е. Ну ни одной переменной класса нет  smile 


--------------------
На хорошей работе и сны хорошие снятся.
PM MAIL   Вверх
Naum
Дата 4.7.2007, 14:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 743
Регистрация: 7.9.2005
Где: Саратов, ул. Поса дского, 298

Репутация: нет
Всего: 15



tol05, это "синтаксический сахар". По-моему эта конструкция в MSIL представляется посложнее, чем конструкция с использованием переменной класса. Сейчас проверить не могу, работаем на 2003 студии. Домой прийду обязательно посмотрю. ;)


--------------------
У нас всего два праздника Новый год и ТЯПница.
PM MAIL ICQ   Вверх
tol05
Дата 4.7.2007, 18:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1632
Регистрация: 21.12.2006
Где: Харьков

Репутация: 36
Всего: 170



Naum понимаешь, есть разные уровни абстракции: в жизни вообще, в программировании, в разговоре... Ты называешь мой код 
Цитата(Naum @  4.7.2007,  14:15 Найти цитируемый пост)
 "синтаксический сахар"

да я и не спорю. Event-ы тоже называют синтаксическим сахаром, ну и что? обидно кому-то что-ли??? smile Генерики, анонимные методы, foreach, switch, try...catch (даже сами Exception - по большому секрету скажу) - все это синтаксический сахар. На ассемблере люди педалят до сих пор, вот там никакого сахара, один геморрой. Только мне не охота чего-то к ним во френды клеиться. Я сахар уважаю, потому что тот сахар, который я себе сам пишу в своих библиотеках, не всегда вкуснее этого сахара (воспринимай эти слова как такой себе вариант каламбура) smile

Partizan, просил показать, как можно сделать без использования переменных класса. Я сделал (или ты хочешь мне показать эти переменные)? Надо исходить из определенного (между договаривающимися сторонами) уровня абстракции. Если я правильно понял Partizan-а, то ему нужно, чтобы в ClassExplorer-е не показывались ненужные никому переменные, чтобы девелоперы, занимающиеся partial class-ом не бегали и не спрашивали, что это за члены класса, нафига они нужны. Чтобы те, кто создавать наследников класса не писали письма с тем же вопросом... Все это я обеспечил.

Ну а то, что эти переменные реально есть и что компилятор их введет - это понятно. Чуда не будет, как всегда smile
Только это не ... волнует никого, никто о них не споткнется, никому они глаза не намозолят... 

Короче, "Кто может, пусть сделает лучше"


--------------------
На хорошей работе и сны хорошие снятся.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0455 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.