Fizyka szkoła podstawowa
Fizyka: wzory, prawa i teoria. Rozwiązania zadań z omówieniem

Rozwązanie zadania:

Fizyka w szkole

Przechwytywanie zdarzeń klawiatury. Kody klawiszy edycyjnych i funkcyjnych

Zdarzenia pochodzące od klawiatury, które możemy przechwycić w dowolnej aplikacji związane są z wciśnięciem dowolnego klawisza, klawisza edycyjnego i zwolnienie dowolnego klawisza. Znajomość kody używanego klawisza pozwala programowo ubogacić komunikację użytkownika z działającym programem. Na przykład reakcja na klawisze funkcyjne F1, F2...itp.

Zdarzenia wysyłane przez klawiaturę obsługiwane są poprzez komunikaty KeyDown, KeyPress, KeyUP. Komunikaty wysyłane są w wyżej podanej kolejności. Każdy z klawiszy ma swój przypisany kod, na przykład klawisz Esc ma kod 27. Klawisz A jako klawisz edycyjny ma znaczenie "A", jego kod ASCII to 65. Gdy traktujemy go jako "a", to kod ASCII wynosi 97

Cel: Napisz aplikację, która zwróci informację o naciśnięciu dowolnego klawisza, klawisza edycyjnego i zwolnieniu dowolnego klawisza.

zdarzenia klawiatury kody klawiszy visual studio c#

Krok 1. Układ komponentów

Na formatce umieścimy poniższe komponenty

  • GroupBox- sztuk 3
  • Label- sztuk 4

keypress visual studio

Komponenty GroupBox posłużą nam w celach estetycznych, zaś komponenty typu Label będą wyświetlać przechwycone komunikaty pochodzące od klawiatury

Krok 2. Przechwytujemy komunikat wciśnięcia klawisza edycyjnego

Klawisze znajdujące sie na klawiaturze podzielone są na klawisze funkcyjne i klawisze edycyjne. Klawisze edycyjne to klawisze alfanumeryczne. Każdy z klawiszy edycyjnych ma przypisany znak kodu ASCII. Wartość tę oraz pozycję (indeks) w zbiorze znaków możemy odczytać. Umiejętność ta może być przydatna w wielu poważniejszych projektach.

Przechwycenie zdarzenia KeyPress (jak i pozostałych) zrealizujemy dla całej tworzonej formatki aplikacji, czyli w klasie Form oprogramujemy zdarzenie KeyPress- musimy odczytać odpowiednie właściwości zwracane przez argument e klasy KeyPressEventArgs

Ciało funkcji Form1_KeyPress wypełnimy poniższym kodem

private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
label1.Text = "Naciśnięto klawisz edycyjny: " + e.KeyChar + ". Pozycja znaku ASCII: " + Convert.ToInt16(e.KeyChar) ;
}

Po skompilowaniu projektu powinniśmy zarejestrować wciśnięcie klawisza edycyjnego. Patrz poniższa ilustracja

visual studio keypress

Krok 3. Przechwytujemy zdarzenie wciśnięcia dowolnego klawisza

Przechwycenie zdarzenia KeyDown zrealizujemy analogicznie jak KeyPress z tą różnicą, że będziemy odczytywać odpowiednie właściwości parametru e, ale z klasy KeyEventArgs

void Form1_KeyDown(object sender, KeyEventArgs e)

Ciało funkcji Form1_KeyDown wypełnimy poniższym kodem

private void Form1_KeyDown(object sender, KeyEventArgs e)
{
label2.Text = "Naciśnięto klawisz: " + e.KeyValue.ToString() +" Jego znaczenie: "+ e.KeyCode.ToString();
}

Po kompilacji projektu powinniśmy zarejestrować wciśniecie dowolnego klawisza, w tym klawiszy funkcyjnych

keyDown visual studio

Krok 4. Przechwytujemy zdarzenie zwolnienia dowolnego klawisza

Przechwycenie zdarzenia KeyUp zrealizujemy analogicznie jak KeyDown

void Form1_KeyUp(object sender, KeyEventArgs e)

Ciało funkcji Form1_KeyUp wypełnimy poniższym kodem


private void Form1_KeyUp(object sender, KeyEventArgs e)
{
label3.Text = "Zwolniono klawisz: " + e.KeyValue.ToString() + " Jego znaczenie: " + e.KeyCode.ToString();
}

Po kompilacji projektu powinniśmy zarejestrować zwolnienie dowolnego klawisza

Form1_KeyUp visual studio

Ćwiczenie sprawdzające

Zmodyfikuj aplikacje tak, aby można było ją zamknąć po wciśnięciu klawisza Esc z zabezpieczeniem poprzez wyborem opcji zamykania umieszczonej w oknie dialogowym (patrz poniższa ilustracja)

MessageBox.Show visual studio

W przypadku braku pomysłu możesz skorzystać z poniższego kodu

if (e.KeyValue == 27){
DialogResult wynik = MessageBox.Show("Czy zamknąć aplikację?", "Komunikat", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (wynik == DialogResult.Yes) { this.Close(); } else { return; }
}


Aplikacje na Androida

Okręty- bitwa morska
okręty gra sieciowa
Darmowa aplikacja na Androida
Kalkulator jednostek fizycznych
Kalkulator jednostek fizycznych (tablet, smartfon, telefon)
Znaki drogowe.
znaki drogowe na telefon, tablet, smartfon
Darmowa aplikacja na Androida
Geometria. Wzory
geometri kalkulator wzory figur bryl

© baibaz - stock.adobe.com

przepis na gofryZobacz przepis na wyśmienite gofry