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

Rozwązanie zadania:

Fizyka w szkole

Zabezpieczenia edycyjne

Przez zabezpieczenia edycyjne rozumiemy zabezpieczenie działania aplikacji przed wywołaniem na przykład błędnej konwersji danych. Sytuacja taka może mieć miejsce wtedy gdy łańcuch znaków "abc" będziemy zamieniać na liczbę (typ całkowity).

Jednym z rozwiązań jest zablokowanie wybranych klawiszy edycyjnych w zdarzeniu KeyPress

Cel: Napisz aplikacje, która kontrolkom TextBox zablokuje klawisze alfabetyczne oraz ewentualny pusty łańcuch znaków zamieni na wartość zero po zwolnieniu klawisza.

kontrolka TextBox visual studio

Krok 1. Układ komponentów

  • Label- sztuk 3
  • TextBox- sztuk 2
  • Button- sztuk 5
układ komponentów visual studio

Krok 2. Zdarzenie KeyUp i blokowanie pustego łańcucha

Oba komponenty TextBox ustawiamy w stan aktywności edycyjnej

textBox visual studio

Sprawdzenie pustego ciągu znaków wykonamy poprzez zmierzenie jego długości. Jeżeli będzie mniejsza od 1 (jeden) to wstawimy w łańcuch znak 0 (zero). Dla obu kontrolek TextBox będziemy chcieli zrobić to w jednej funkcji zdarzenia KeyUp

visual studio key_press
private void TextBox1_KeyUp(object sender, KeyEventArgs e)
{
if (textBox1.Text.Length < 1) { textBox1.Text = "0"; }
if (textBox2.Text.Length < 1) { textBox2.Text = "0"; }
}

Skompiluj projekt i sprawdź efekt działania.

Krok 3. Rzutowanie obiektów

Wadą wcześniejszego rozwiązania jest jego długość, zaleta to jasność kodu. Możemy napisać bardziej eleganckie rozwiązanie wykorzystujące rzutowanie obiektu wysyłającego komunikat.

Dla czytelności rozwiązania zadeklarujemy zmienna lokalną typu TextBox

private void TextBox1_KeyUp(object sender, KeyEventArgs e)
{
TextBox tb= sender as TextBox;
if (tb.Text.Length < 1) { tb.Text = "0"; }
}

textBox visual studio

To samo rozwiązanie beż użycia zmiennej lokalnej przyjmuje postać


if ((sender as TextBox).Text.Length < 1) { (sender as TextBox).Text = "0"; }

Krok 4. Blokowanie klawiszy alfabetycznych

Zdarzenie KeyPress dla obu komponentów TextBox ustalamy na wspólne i wprowadzamy poniższy kod wykorzystujący kod znaku

private void TextBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == 8 || e.KeyChar == '-') return;//ignoruj BackSpace lub znak "minus"
if (e.KeyChar < '0' || e.KeyChar > '9') e.Handled = true;
}

Skompiluj program i sprawdź efekt działania. Poprawnie działająca aplikacja nie pozwoli wprowadzić innych znaków niż cyfry oraz znak "minus"

e.KeyChar visual studio

Innym rozwiązaniem jest sprawdzenie przynależności wciśniętego znaku do wybranego zbioru znaków struktury

struct System.Char
visual studio System.Char

Praktyczna realizacja blokowania znaków alfabetycznych może być zapisana jak poniżej

private void TextBox1_KeyPress(object sender, KeyPressEventArgs e){
if (!Char.IsDigit(e.KeyChar)) e.Handled = true;//tylko cyfry
//if (!Char.IsLetter(e.KeyChar)) e.Handled = true;//tylko litery
}

Krok 5. Zabezpieczenie konwersji danych

Zabezpieczenie konwersji wprowadzonych danych zrealizujemy w zdarzeniu Click klawiszy działań. Jednocześnie zadeklarujemy trzy zmienne lokalne typu rzeczywistego. Fragment kodu poniżej


float a=0, b=0, wynik=0;
if (textBox1.Text.Length > 0) { a = (float)Convert.ToDouble(textBox1.Text);}
if (textBox2.Text.Length > 0) { b = (float)Convert.ToDouble(textBox2.Text);}

Ćwiczenie sprawdzające

1. Zrealizuj działanie dodawania, odejmowania, mnożenia i dzielenia z opcją zabezpieczenia konwersji i wykonywanych działań

textBox1 visual studio


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