DataGridView.ProcessDataGridViewKey(KeyEventArgs) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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
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.