Данная статья переведена с помощью средств машинного перевода. Чтобы просмотреть ее на английском языке, установите флажок Английский. Вы также можете просматривать английский текст во всплывающем окне, наводя указатель мыши на переведенный текст.
Перевод
Английский

Класс KeyEventArgs

 

Опубликовано: Октябрь 2016

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

Пространство имен:   System.Windows.Forms
Сборка:  System.Windows.Forms (в System.Windows.Forms.dll)

System.Object
  System.EventArgs
    System.Windows.Forms.KeyEventArgs

[ComVisibleAttribute(true)]
public class KeyEventArgs : EventArgs

ИмяОписание
System_CAPS_pubmethodKeyEventArgs(Keys)

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

ИмяОписание
System_CAPS_pubpropertyAlt

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

System_CAPS_pubpropertyControl

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

System_CAPS_pubpropertyHandled

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

System_CAPS_pubpropertyKeyCode

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

System_CAPS_pubpropertyKeyData

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

System_CAPS_pubpropertyKeyValue

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

System_CAPS_pubpropertyModifiers

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

System_CAPS_pubpropertyShift

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

System_CAPS_pubpropertySuppressKeyPress

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

ИмяОписание
System_CAPS_pubmethodEquals(Object)

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

System_CAPS_protmethodFinalize()

Позволяет объекту попытаться освободить ресурсы и выполнить другие операции очистки, перед тем как он будет уничтожен во время сборки мусора.(Наследуется от Object.)

System_CAPS_pubmethodGetHashCode()

Служит хэш-функцией по умолчанию.(Наследуется от Object.)

System_CAPS_pubmethodGetType()

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

System_CAPS_protmethodMemberwiseClone()

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

System_CAPS_pubmethodToString()

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

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

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

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

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

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

Пример 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 mose 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;
    }
}

.NET Framework
Доступно с 1.1

Любые открытые статические элементы ( Предоставлен общий доступ в Visual Basic) этого типа являются потокобезопасными. Потокобезопасность элементов экземпляров не гарантируется.

Вернуться в начало
Показ: