Madzmar25 Ответов: 3

Как поймать или зацепить клавишу alt f4


Привет,

Я просто хочу спросить, Может ли кто-нибудь предоставить мне код о том, как поймать или зацепить клавишу alt f4?

Мне нужен только простой пример.
Судя по тому, что я вижу в некоторых потоках, они, как правило, предоставляют сложный код, а я просто новичок в c#.
В принципе, я просто хочу знать Самый простой способ поймать ключ alt f4 и надеюсь, что кто-то сможет мне его предоставить.

Спасибо

Sergey Alexandrovich Kryukov

Отметьте вопрос правильно, особенно если вам нужна дополнительная информация. WPF? WinForms? ASP.NET?
В следующий раз отмечайте точно с самого начала.
--СА

Dalek Dave

Отредактировано для грамматики и удобочитаемости.

Madzmar25

Спасибо за помощь, ребята... я попробовал ваш образец, используя e.cancel= true, и он работает... еще раз спасибо

3 Ответов

Рейтинг:
27

Toli Cuturicu

Возможно, будет полезно рассказать нам, чего вы хотите достичь...
Если вы просто хотите предотвратить закрытие пользователем Form / Application пользуясь Alt+F4, вы можете установить e.Cancel = true; В вашем FormClosing event.


Dalek Dave

хороший ответ.

Sergey Alexandrovich Kryukov

Хорошая мысль, мой 5-й. Я отредактирую свой ответ, чтобы сослаться на ваш совет. Может быть, управление нажатием клавиши вообще не требуется.
--СА

Sergey Alexandrovich Kryukov

Я обновил мой ответ, дополнена информация на WinForms и WPF.
Большое спасибо.
--СА

Рейтинг:
2

Mina Mansouri

Private Sub Frm_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
        'nashe ba ALT+F4 forme karnamaro bebandim

        If e.Alt AndAlso e.KeyCode = Keys.F4 Then
            e.Handled = True
        End If

        'end
    End Sub



в c#

if (e.Alt && e.KeyCode == Keys.F4)
                   {

               e.Handled = true ;

                   }


Рейтинг:
18

Sergey Alexandrovich Kryukov

Никаких ловушек, никаких крючков. Вам нужно справиться с этим System.Windows.Forms.Control.KeyDown для System.Windows.Forms, или System.Windows.FrameworkElement.KeyDown, System.Windows.FrameworkElement.PreviewKeyDown для WPF. См.справку по этим классам и событиям.


[РЕДАКТИРОВАТЬ]

Возможно, обработка события клавиатуры вообще не нужна. Как заметил толи (см. Его ответ), это закрытие окна a form или WPF, поэтому вам нужно обработать System.Windows.Forms.Form.FormClosing (с возможностью закрыть форму) или System.Windows.Forms.Form.FormClosed. Для WPF см. аналогичный раздел System.Windows.Window.Closing и System.Windows.Window.Close события.

—СА


Sergey Alexandrovich Kryukov

Отметьте вопрос правильно, а затем спросите, есть ли у вас еще вопросы.
(Пожалуйста, не публикуйте в качестве ответа-очень распространенная досадная ошибка, в этом случае пост будет удален.)
--СА

Madzmar25

МОЖЕТЕ ЛИ ВЫ ПРЕДОСТАВИТЬ МНЕ ПРОСТОЙ КОД? ЭТО ОЧЕНЬ ПОМОЖЕТ...

Sergey Alexandrovich Kryukov

Я не хочу ставить образцы для всех случаев. Вы помечаете свой вопрос так, как я его задал, я поставлю образец соответственно, договорились?
--СА

Sergey Alexandrovich Kryukov

Пожалуйста, не кричите (ALL-CAPS кричит, считается невежливым в интернете.) Где твой жетон?
(WPF, WinFroms?)
--СА

Dalek Dave

хороший ответ.

Sergey Alexandrovich Kryukov

Спасибо, далек.
--СА