This documentation is archived and is not being maintained.

Control.PreviewKeyDown Event

Occurs before the KeyDown event when a key is pressed while focus is on this control.

Namespace: System.Windows.Forms
Assembly: System.Windows.Forms (in

Public Event PreviewKeyDown As PreviewKeyDownEventHandler
Dim instance As Control
Dim handler As PreviewKeyDownEventHandler

AddHandler instance.PreviewKeyDown, handler

/** @event */
public void add_PreviewKeyDown (PreviewKeyDownEventHandler value)

/** @event */
public void remove_PreviewKeyDown (PreviewKeyDownEventHandler value)

In JScript, you can handle the events defined by a class, but you cannot define your own.
Not applicable.

For more information about handling events, see Consuming Events.

The following code example demonstrates the use of this member. In the example, an event handler reports on the occurrence of the PreviewKeyDown event. This report helps you to learn when the event occurs and can assist you in debugging. To report on multiple events or on events that occur frequently, consider replacing System.Windows.Forms.MessageBox.Show with System.Console.WriteLine or appending the message to a multiline TextBox.

To run the example code, paste it into a project that contains an instance of a type that inherits from Control, such as a Button or ComboBox. Then name the instance Control1 and ensure that the event handler is associated with the PreviewKeyDown event.

Private Sub Control1_PreviewKeyDown(sender as Object, e as PreviewKeyDownEventArgs) _ 
     Handles Control1.PreviewKeyDown

    Dim messageBoxVB as New System.Text.StringBuilder()
    messageBoxVB.AppendFormat("{0} = {1}", "Alt", e.Alt)
    messageBoxVB.AppendFormat("{0} = {1}", "Control", e.Control)
    messageBoxVB.AppendFormat("{0} = {1}", "KeyCode", e.KeyCode)
    messageBoxVB.AppendFormat("{0} = {1}", "KeyValue", e.KeyValue)
    messageBoxVB.AppendFormat("{0} = {1}", "KeyData", e.KeyData)
    messageBoxVB.AppendFormat("{0} = {1}", "Modifiers", e.Modifiers)
    messageBoxVB.AppendFormat("{0} = {1}", "Shift", e.Shift)
    messageBoxVB.AppendFormat("{0} = {1}", "IsInputKey", e.IsInputKey)
    MessageBox.Show(messageBoxVB.ToString(),"PreviewKeyDown Event")

End Sub

Windows 98, Windows Server 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.

.NET Framework

Supported in: 3.0, 2.0