Udostępnij za pośrednictwem


DataGridView.ProcessDataGridViewKey(KeyEventArgs) Metoda

Definicja

Przetwarza klucze używane do nawigowania w obiekcie DataGridView.

protected:
 virtual bool ProcessDataGridViewKey(System::Windows::Forms::KeyEventArgs ^ e);
protected virtual bool ProcessDataGridViewKey (System.Windows.Forms.KeyEventArgs e);
abstract member ProcessDataGridViewKey : System.Windows.Forms.KeyEventArgs -> bool
override this.ProcessDataGridViewKey : System.Windows.Forms.KeyEventArgs -> bool
Protected Overridable Function ProcessDataGridViewKey (e As KeyEventArgs) As Boolean

Parametry

e
KeyEventArgs

Zawiera informacje o naciśniętym klawiszu.

Zwraca

true jeśli klucz został przetworzony; w przeciwnym razie , false.

Wyjątki

Naciśnięcie klawisza spowoduje, że kontrolka wejdzie w tryb edycji, ale EditType właściwość bieżącej komórki nie wskazuje klasy pochodzącej z Control klasy i implementuje IDataGridViewEditingControlelement .

Ta akcja spowoduje zatwierdzenie wartości komórki lub wprowadzenie trybu edycji, ale błąd w źródle danych uniemożliwia wykonanie akcji i nie ma procedury obsługi dla DataError zdarzenia lub program obsługi ustawił ThrowException właściwość na true.

-lub-

Klucz DELETE usunąłby jeden lub więcej wierszy, ale błąd w źródle danych uniemożliwia usunięcie i nie ma procedury obsługi dla DataError zdarzenia lub program obsługi ustawił ThrowException właściwość na true.

Przykłady

W poniższym przykładzie kodu pokazano, jak zmienić zachowanie klucza ENTER w podklasie DataGridView przez zastąpienie ProcessDataGridViewKey metod i ProcessDialogKey . W tym przykładzie klucz ENTER ma takie samo zachowanie jak klawisz STRZAŁKA W PRAWO, co ułatwia użytkownikowi edytowanie wielu komórek w jednym wierszu danych.

public class CustomDataGridView : DataGridView
{
    protected override bool ProcessDialogKey(Keys keyData)
    {
        // Extract the key code from the key value. 
        Keys key = (keyData & Keys.KeyCode);

        // Handle the ENTER key as if it were a RIGHT ARROW key. 
        if (key == Keys.Enter)
        {
            return this.ProcessRightKey(keyData);
        }
        return base.ProcessDialogKey(keyData);
    }

    protected override bool ProcessDataGridViewKey(KeyEventArgs e)
    {
        // Handle the ENTER key as if it were a RIGHT ARROW key. 
        if (e.KeyCode == Keys.Enter)
        {
            return this.ProcessRightKey(e.KeyData);
        }
        return base.ProcessDataGridViewKey(e);
    }
}
Public Class CustomDataGridView
    Inherits DataGridView

    <System.Security.Permissions.UIPermission( _
        System.Security.Permissions.SecurityAction.LinkDemand, _
        Window:=System.Security.Permissions.UIPermissionWindow.AllWindows)> _
    Protected Overrides Function ProcessDialogKey( _
        ByVal keyData As Keys) As Boolean

        ' Extract the key code from the key value. 
        Dim key As Keys = keyData And Keys.KeyCode

        ' Handle the ENTER key as if it were a RIGHT ARROW key. 
        If key = Keys.Enter Then
            Return Me.ProcessRightKey(keyData)
        End If

        Return MyBase.ProcessDialogKey(keyData)

    End Function

    <System.Security.Permissions.SecurityPermission( _
        System.Security.Permissions.SecurityAction.LinkDemand, Flags:= _
        System.Security.Permissions.SecurityPermissionFlag.UnmanagedCode)> _
    Protected Overrides Function ProcessDataGridViewKey( _
        ByVal e As System.Windows.Forms.KeyEventArgs) As Boolean

        ' Handle the ENTER key as if it were a RIGHT ARROW key. 
        If e.KeyCode = Keys.Enter Then
            Return Me.ProcessRightKey(e.KeyData)
        End If

        Return MyBase.ProcessDataGridViewKey(e)

    End Function

End Class

Uwagi

Ta metoda wywołuje metodę przetwarzania klawiszy odpowiednią dla naciśniętego klawisza (na przykład ProcessF2Key metody, gdy klawisz F2 jest naciśnięty) i zwraca wartość zwracaną przez tę metodę.

Uwagi dotyczące dziedziczenia

Podczas zastępowania tej metody kontrolka powinna wrócić true , aby wskazać, że przetworzyła klucz. W przypadku kluczy, które nie są przetwarzane przez kontrolkę, zwróć wynik podstawowej wersji tej metody.

Dotyczy

Zobacz też