Control.IsInputKey(Keys) Metódus
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Meghatározza, hogy a megadott kulcs egy normál bemeneti kulcs vagy egy speciális kulcs, amely előfeldolgozást igényel.
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
Paraméterek
Válaszok
trueha a megadott kulcs egy normál bemeneti kulcs; egyéb esetben. false
Példák
Az alábbi példakód bemutatja, hogyan bírálhatja felül a vezérlő metódusát IsInputKeyTextBox . Ebben a példában az TabTextBox osztály kezeli a TAB billentyűt. Amikor a TabTextBox fókuszt a felhasználó lenyomja, a tabulátorbillentyűvel négy szóköz jelenik meg a szöveg beszúrási pontján, lecserélve a kijelölt szöveget. Alapértelmezés szerint a vezérlő úgy TextBox kezeli a TAB billentyűt, hogy a bemeneti fókuszt a következő vezérlőre helyezi. Ebben az esetben a kulcsnyomás soha nem éri el a metódus felülbírálását OnKeyDown . Ennek az alapértelmezett viselkedésnek a megakadályozása érdekében a IsInputKey metódus felülbírálása akkor jelenik true meg, amikor a felhasználó lenyomja a TAB billentyűt. Az összes többi kulcsnyomás esetében a IsInputKey metódus felülbírálása a metódus alaposztályú verziójának meghívásának eredményét adja vissza.
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
Megjegyzések
Hívja meg a IsInputKey metódust annak meghatározásához, hogy a keyData paraméter által megadott kulcs egy bemeneti kulcs-e, amelyet a vezérlő kíván. Ezt a metódust az ablaküzenetek előfeldolgozása során hívjuk meg annak meghatározásához, hogy a megadott bemeneti kulcsot elő kell-e feldolgozni, vagy közvetlenül a vezérlőnek kell-e elküldeni. Ha IsInputKey visszaadja true, a megadott kulcs közvetlenül a vezérlőnek lesz elküldve. Ha IsInputKey visszaadja false, a megadott kulcs előre feldolgozva lesz, és csak akkor küldi el a vezérlőnek, ha az előfeldolgozási fázis nem használja fel. Az előre feldolgozott kulcsok közé tartoznak a TAB, a RETURN, az ESC és a FEL, a LE, a BALRA és a JOBBRA nyílbillentyűk.