Ағылшын тілінде оқу

Бөлісу құралы:


KeyEventArgs Класс

Определение

Предоставляет данные для события KeyDown или KeyUp.

[System.Runtime.InteropServices.ComVisible(true)]
public class KeyEventArgs : EventArgs
public class KeyEventArgs : EventArgs
Наследование
KeyEventArgs
Атрибуты

Примеры

В следующих примерах кода показано, как определить состояние нажатия клавиши.

Пример 1

В следующем примере кода показано, как использовать KeyDown событие с классом Help для отображения всплывающего стиля справки для пользователя приложения. В примере используются свойства, передаваемые KeyEventArgs методу обработчика событий, для фильтрации всех вариантов нажатия клавиши F1 с помощью клавиши-модификатора. Когда пользователь нажимает любой вариант F1, включающий любой модификатор Help клавиатуры, класс отображает всплывающее окно, похожее на , рядом с элементом ToolTipуправления . Если пользователь нажимает клавиши ALT+F2, отображается другое всплывающее окно справки с дополнительными сведениями.

private void textBox1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
    // Determine whether the key entered is the F1 key. If it is, display Help.
    if(e.KeyCode == Keys.F1 && (e.Alt || e.Control || e.Shift))
    {
        // Display a pop-up Help topic to assist the user.
        Help.ShowPopup(textBox1, "Enter your name.", new Point(textBox1.Bottom, textBox1.Right));
    }
    else if(e.KeyCode == Keys.F2 && e.Modifiers == Keys.Alt)
    {
        // Display a pop-up Help topic to provide additional assistance to the user.
        Help.ShowPopup(textBox1, "Enter your first name followed by your last name. Middle name is optional.",
            new Point(textBox1.Top, this.textBox1.Left));
    }
}

Пример 2

В следующем примере определяется, нажал ли пользователь клавиши ALT+E, и если указатель мыши находится на TreeNode, пользователь может изменить значение TreeNode.

private void treeView1_KeyDown(object sender, KeyEventArgs e)
{
   /* If the 'Alt' and 'E' keys are pressed,
      * allow the user to edit the TreeNode label. */
   if(e.Alt && e.KeyCode == Keys.E)
         
   {
      treeView1.LabelEdit = true;
      // If there is a TreeNode under the mouse cursor, begin editing. 
      TreeNode editNode = treeView1.GetNodeAt(
         treeView1.PointToClient(System.Windows.Forms.Control.MousePosition));
      if(editNode != null)
      { 
         editNode.BeginEdit();
      }
   }
}

private void treeView1_AfterLabelEdit(object sender, NodeLabelEditEventArgs e)
{
   // Disable the ability to edit the TreeNode labels.
   treeView1.LabelEdit = false;
}

Пример 3

В следующем примере определяется, нажал ли пользователь нечисловую клавишу, и если да, событие отменяется KeyPress с помощью Handled свойства .

// Boolean flag used to determine when a character other than a number is entered.
private bool nonNumberEntered = false;

// Handle the KeyDown event to determine the type of character entered into the control.
private void textBox1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
    // Initialize the flag to false.
    nonNumberEntered = false;

    // Determine whether the keystroke is a number from the top of the keyboard.
    if (e.KeyCode < Keys.D0 || e.KeyCode > Keys.D9)
    {
        // Determine whether the keystroke is a number from the keypad.
        if (e.KeyCode < Keys.NumPad0 || e.KeyCode > Keys.NumPad9)
        {
            // Determine whether the keystroke is a backspace.
            if(e.KeyCode != Keys.Back)
            {
                // A non-numerical keystroke was pressed.
                // Set the flag to true and evaluate in KeyPress event.
                nonNumberEntered = true;
            }
        }
    }
    //If shift key was pressed, it's not a number.
    if (Control.ModifierKeys == Keys.Shift) {
        nonNumberEntered = true;
    }
}

// This event occurs after the KeyDown event and can be used to prevent
// characters from entering the control.
private void textBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
    // Check for the flag being set in the KeyDown event.
    if (nonNumberEntered == true)
    {
        // Stop the character from being entered into the control since it is non-numerical.
        e.Handled = true;
    }
}

Комментарии

Объект KeyEventArgs, указывающий клавишу, которую нажал пользователь, и указывает, были ли нажаты какие-либо клавиши-модификаторы (CTRL, ALT и SHIFT) одновременно, передается с каждым KeyDown событием или KeyUp .

Это KeyDown событие возникает, когда пользователь нажимает любую клавишу. Это KeyUp событие возникает, когда пользователь отпускает ключ. Повторяющиеся KeyDown события происходят каждый раз, когда ключ повторяется, если ключ удерживается, но только одно KeyUp событие создается, когда пользователь отпускает ключ.

Событие KeyPress также возникает при нажатии клавиши. Передается KeyPressEventArgs с каждым KeyPress событием и указывает символ, который был составлен в результате нажатия каждой клавиши.

Сведения о модели событий см. в разделе Обработка и вызов событий.

Конструкторы

KeyEventArgs(Keys)

Инициализирует новый экземпляр класса KeyEventArgs.

Свойства

Alt

Возвращает значение, указывающее, была ли нажата клавиша ALT.

Control

Возвращает значение, указывающее, была ли нажата клавиша CTRL.

Handled

Возвращает или задает значение, указывающее, было ли обработано событие.

KeyCode

Получает код клавиатуры для события KeyDown или события KeyUp.

KeyData

Получает данные, касающиеся клавиши, для события KeyDown или KeyUp.

KeyValue

Получает значение клавиатуры для события KeyDown или KeyUp.

Modifiers

Получает флаги модификаторов для события KeyDown или события KeyUp. Флаги указывают, какая комбинация клавиш CTRL, SHIFT и ALT была нажата.

Shift

Возвращает значение, указывающее, была ли нажата клавиша SHIFT.

SuppressKeyPress

Возвращает или задает значение, указывающее, следует ли передавать события нажатия клавиши базовому элементу управления.

Методы

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Применяется к

Өнім Нұсқалар
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

См. также раздел