DataGridView.ProcessDialogKey(Keys) Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee worden toetsen verwerkt, zoals tab, ESCAPE, ENTER en pijltoetsen, die worden gebruikt om dialoogvensters te beheren.
protected:
override bool ProcessDialogKey(System::Windows::Forms::Keys keyData);
protected override bool ProcessDialogKey(System.Windows.Forms.Keys keyData);
override this.ProcessDialogKey : System.Windows.Forms.Keys -> bool
Protected Overrides Function ProcessDialogKey (keyData As Keys) As Boolean
Parameters
- keyData
- Keys
Een bitsgewijze combinatie van Keys waarden die de sleutel of sleutels vertegenwoordigt die moeten worden verwerkt.
Retouren
true indien de sleutel is verwerkt; anders, false.
Uitzonderingen
De toets die werd ingedrukt, zou ertoe leiden dat het besturingselement de bewerkingsmodus opent, maar de EditType eigenschap van de huidige cel geeft geen klasse aan die is afgeleid van Control en implementeert IDataGridViewEditingControl.
Met deze actie wordt een celwaarde doorgevoerd of wordt de bewerkingsmodus geactiveerd, maar een fout in de gegevensbron voorkomt de actie en er is geen handler voor de DataError gebeurtenis of de handler heeft de ThrowException eigenschap ingesteld op true.
Voorbeelden
In het volgende codevoorbeeld ziet u hoe u het gedrag van de ENTER-sleutel in een DataGridView subklasse wijzigt door de ProcessDataGridViewKey en ProcessDialogKey methoden te overschrijven. In het voorbeeld heeft de ENTER-toets hetzelfde gedrag als de toets PIJL-RECHTS, waardoor een gebruiker gemakkelijker meerdere cellen in één rij met gegevens kan bewerken.
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
Opmerkingen
Deze methode wordt aangeroepen in de bewerkingsmodus voor het verwerken van toetsenbordinvoer die niet wordt verwerkt door het gehoste besturingselement voor bewerken.
Als wordt vastgesteld dat een toets geen invoersleutel is, wordt deze verzonden naar de basisklasse voor verwerking.
Notities voor overnemers
Wanneer u deze methode overschrijft, moet een besturingselement terugkeren true om aan te geven dat deze de sleutel heeft verwerkt. Voor sleutels die niet door het besturingselement worden verwerkt, retourneert u het resultaat van de basisversie van deze methode.