PDA

Просмотр полной версии : Alt+F4


Aleksandr Vishinskiy
12.01.2007, 00:47
вот к примеру у меня запущена форма если я на ней нажимаю например кнопку Выход то форма закрывается а как мне тоже самое действие привязать если я нажал Alt+F4 собствено сложность вся в том чтобы отследить момент нажатия сочетания на клаве
какие события работают?

Guzal Giyasova
12.01.2007, 19:55
form closing event

Aleksandr Vishinskiy
12.01.2007, 20:53
неа это событие должно срабатывать еще до form closing
что то типа вечного цикла который будет следить за тем что нажато на клаве

Akrom Obidov
13.01.2007, 00:15
Точно не помнью (уже месяцев 6 или 7 не кодировал) примерно было так, там должен быть метод его надо перегрузить...
назывался он или Proccescmd или CmdProcces, точно не помнью попробуй должно получится, вот в этом методе перехватываеш событие нажатия клавиши.... а остальное думаю сам раскапаеш....

Серикбой
15.01.2007, 17:45
Уважаемый Алекс. А в чём, собственно проблема? По умолчанию кнопки закрывания окна в Виндоусе именно Alt+F4. То есть любое созданное приложение будет закрываться при нажатии на сабж.

Если такое не происходит, есть вариант пойти криво, но дееспособно и легко:
Создаёшь MainMenu, в него записываешь некий элемент, при нажатии на который выполняется this.Close();
В свойствах этого элемента указываешь, что ShortCuts равен Alt+F4 и всё.
ЗЫ. Для удобочитаемости можешь у твоего меню Visible сделать равным false.
ЗЗЫ. Если есть ещё какие-то элементы, которые поддерживают свойство ShortCuts , делай через них. Я таких не знаю

Guzal Giyasova
15.01.2007, 18:41
неа это событие должно срабатывать еще до form closing
что то типа вечного цикла который будет следить за тем что нажато на клаве

я вот шас пробую в самой форме KeyDown e.alt ili e.control но они че-то не работают, а теоретически вроде бы должны ??? подумай над этим

Orifjon Narkulov
16.01.2007, 15:07
вот к примеру у меня запущена форма если я на ней нажимаю например кнопку Выход то форма закрывается а как мне тоже самое действие привязать если я нажал Alt+F4 собствено сложность вся в том чтобы отследить момент нажатия сочетания на клаве
какие события работают?

udache

Begali Mamatkarimov
16.01.2007, 22:20
Mana kod ishlatib ko'r
public bool onProcessCmdKey(ref Message msg, Keys keydata)
{
return ProcessCmdKey(ref msg, keydata);
}
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (this.Focused == true && keyData == Keys.Delete)
{
this.Close();
return true;
}
return false;
}
ishlashi kerak...

Evgeniy Pivovarov
31.07.2007, 11:48
я вот шас пробую в самой форме KeyDown e.alt ili e.control но они че-то не работают, а теоретически вроде бы должны ??? подумай над этим а они и не должны работать, ведь нажимаются 2 кнопки, и надо фиксировать обе, а событие KeyDown или KeyPress ловит только 1 кнопку.

Уважаемый Алекс. А в чём, собственно проблема? По умолчанию кнопки закрывания окна в Виндоусе именно Alt+F4. То есть любое созданное приложение будет закрываться при нажатии на сабж.

Если такое не происходит, есть вариант пойти криво, но дееспособно и легко:
Создаёшь MainMenu, в него записываешь некий элемент, при нажатии на который выполняется this.Close();
В свойствах этого элемента указываешь, что ShortCuts равен Alt+F4 и всё.
ЗЫ. Для удобочитаемости можешь у твоего меню Visible сделать равным false.
ЗЗЫ. Если есть ещё какие-то элементы, которые поддерживают свойство ShortCuts , делай через них. Я таких не знаю
ИМХО самый правильный вариант.