Control.IsInputKey(Keys) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Bestimmt, ob es sich bei dem angegebenen Schlüssel um einen regulären Eingabeschlüssel oder einen speziellen Schlüssel handelt, der eine Vorverarbeitung erfordert.
protected:
virtual bool IsInputKey(System::Windows::Forms::Keys keyData);
protected virtual bool IsInputKey(System.Windows.Forms.Keys keyData);
abstract member IsInputKey : System.Windows.Forms.Keys -> bool
override this.IsInputKey : System.Windows.Forms.Keys -> bool
Protected Overridable Function IsInputKey (keyData As Keys) As Boolean
Parameter
Gibt zurück
truewenn der angegebene Schlüssel ein regulärer Eingabeschlüssel ist; andernfalls . false
Beispiele
Das folgende Codebeispiel zeigt, wie Sie die IsInputKey Methode für ein TextBox Steuerelement überschreiben. In diesem Beispiel behandelt die Klasse die TabTextBox TAB-TASTE. Wenn der TabTextBox Fokus liegt und der Benutzer die TAB-TASTE drückt, werden vier Leerzeichen an der Texteinfügemarke hinzugefügt, wobei der markierte Text ersetzt wird. Standardmäßig behandelt das TextBox Steuerelement die TAB-TASTE, indem der Eingabefokus auf das nächste Steuerelement verschoben wird. In diesem Fall erreicht die Keypress niemals die Außerkraftsetzung der OnKeyDown Methode. Um dieses Standardverhalten zu verhindern, gibt true die IsInputKey Methode außer Kraft, wenn der Benutzer die TAB-TASTE drückt. Bei allen anderen Keypressen gibt die IsInputKey Methodeüberschreibung das Ergebnis des Aufrufs der Basisklassenversion der Methode zurück.
using System.Windows.Forms;
public class Form1 : Form
{
public Form1()
{
FlowLayoutPanel panel = new FlowLayoutPanel();
TabTextBox tabTextBox1 = new TabTextBox();
tabTextBox1.Text = "TabTextBox";
panel.Controls.Add(tabTextBox1);
TextBox textBox1 = new TextBox();
textBox1.Text = "Normal TextBox";
panel.Controls.Add(textBox1);
this.Controls.Add(panel);
}
}
class TabTextBox : TextBox
{
protected override bool IsInputKey(Keys keyData)
{
if (keyData == Keys.Tab)
{
return true;
}
else
{
return base.IsInputKey(keyData);
}
}
protected override void OnKeyDown(KeyEventArgs e)
{
if (e.KeyData == Keys.Tab)
{
this.SelectedText = " ";
}
else
{
base.OnKeyDown(e);
}
}
}
Imports System.Windows.Forms
Public Class Form1
Inherits Form
Public Sub New()
Dim panel As New FlowLayoutPanel()
Dim tabTextBox1 As New TabTextBox()
tabTextBox1.Text = "TabTextBox"
panel.Controls.Add(tabTextBox1)
Dim textBox1 As New TextBox()
textBox1.Text = "Normal TextBox"
panel.Controls.Add(textBox1)
Me.Controls.Add(panel)
End Sub
End Class
Class TabTextBox
Inherits TextBox
Protected Overrides Function IsInputKey( _
ByVal keyData As System.Windows.Forms.Keys) As Boolean
If keyData = Keys.Tab Then
Return True
Else
Return MyBase.IsInputKey(keyData)
End If
End Function
Protected Overrides Sub OnKeyDown( _
ByVal e As System.Windows.Forms.KeyEventArgs)
If e.KeyData = Keys.Tab Then
Me.SelectedText = " "
Else
MyBase.OnKeyDown(e)
End If
End Sub
End Class
Hinweise
Rufen Sie die IsInputKey Methode auf, um zu bestimmen, ob der vom keyData Parameter angegebene Schlüssel ein Eingabeschlüssel ist, den das Steuerelement wünscht. Diese Methode wird während der Vorverarbeitung von Fensternachrichten aufgerufen, um zu bestimmen, ob der angegebene Eingabeschlüssel vorverarbeitet oder direkt an das Steuerelement gesendet werden soll. Wenn IsInputKey der Wert zurückgegeben truewird, wird der angegebene Schlüssel direkt an das Steuerelement gesendet. Wenn IsInputKey dieser Wert zurückgegeben falsewird, wird der angegebene Schlüssel vorverarbeitet und nur an das Steuerelement gesendet, wenn er nicht von der Vorverarbeitungsphase verbraucht wird. Zu den vorverarbeiteten Tasten zählen DIE TAB-, EINGABETASTE-, ESC- und NACH-OBEN-TASTE, NACH-UNTEN, NACH-LINKS- und NACH-RECHTS-TASTE.