Nasıl yapılır: Hangi Değiştirici Tuşa Basıldığını Belirleme
Kullanıcının tuş vuruşlarını kabul eden bir uygulama oluşturdukta SHIFT, ALT ve CTRL tuşları gibi değiştirici tuşları izlemek de iyi olabilir. Bir değiştirici tuşa diğer tuşlarla birlikte basıldığında veya fare tıklaması olduğunda, uygulamanız uygun şekilde yanıt ve verir. Örneğin, S harfine basıldığında bu yalnızca ekranda "s" harfinin görünmesine neden olabilir, ancak CTRL+S tuşlarına basıldığında geçerli belge kaydedilebilir. Olayı KeyDown işlersanız, olay Modifiers işleyicisi tarafından alınan özelliğini hangi değiştirici KeyEventArgs tuşlarına basıldığında belirtir. Alternatif olarak, özelliği basılmış karakteri ve bitwise OR ile birleştirilmiş değiştirici KeyData KeyEventArgs tuşları belirtir. Ancak, olayı veya fare KeyPress olayı işleyicisi bu bilgileri almaz. Bu durumda sınıfının özelliğini ModifierKeys Control kullanabilirsiniz. Her iki durumda da, uygun değer ve test etmekte olduğunuz değer için bit olarak AND Keys gerçekleştirmeniz gerekir. Enumeration, her değiştirici anahtarın çeşitlemelerini sunar, bu nedenle bit olarak VE'i doğru Keys değerle gerçekleştirmeniz önemlidir. Örneğin, SHIFT anahtarı , ile temsil edildi ve SHIFT'i değiştirici anahtar olarak Shift test etmek için doğru değer ShiftKey RShiftKey LShiftKey Shift değeridir. Benzer şekilde, değiştirici olarak CTRL ve ALT için test etmek için sırasıyla Control ve Alt değerlerini kullanacağız.
Not
Visual Basic programcılar özelliği aracılığıyla anahtar bilgilere de Keyboard erişebilirsiniz
Hangi değiştirici tuşa basıldığından belirlemek için
Belirli bir değiştirici
ANDtuşa basıp basılamay olmadığını belirlemek için özelliği ve numaralama değeriyle bitwise ModifierKeys Keys işleci kullanın. Aşağıdaki kod örneği, SHIFT tuşuna bir olay işleyicisi içinde basıp bası olmadığının nasıl KeyPress belirleneceklerini gösterir.private: void textBox1_KeyPress(Object^ sender, KeyPressEventArgs^ e) { if ((Control::ModifierKeys & Keys::Shift) == Keys::Shift) { MessageBox::Show("Pressed " + Keys::Shift.ToString()); } }public void TextBox1_KeyPress(object sender, KeyPressEventArgs e) { if ((Control.ModifierKeys & Keys.Shift) == Keys.Shift) { MessageBox.Show("Pressed " + Keys.Shift); } }Public Sub TextBox1_KeyPress(ByVal sender As Object, _ ByVal e As KeyPressEventArgs) Handles TextBox1.KeyPress If ((Control.ModifierKeys And Keys.Shift) = Keys.Shift) Then MsgBox("Pressed " + Keys.Shift.ToString()) End If End Sub