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

Rozwązanie zadania:

Fizyka w szkole

Menu aplikacji. Kontrolka MenuStrip

Cel: Napisz aplikację, którą przy pomocy menu ustalisz rodzaj podstawowych działań matematycznych

Menu aplikacji. Kontrolka MenuStrip Visual Studio C#

Krok 1. Układ komponentów

  • MenuStrip- sztuk 1
  • Label- sztuk 3
  • TextBox- sztuk 2
  • Button- sztuk 1
  • StatusStrip- sztuk 1

kontroliki menu visual studio c#

Krok 2. Zmiana zawartości menu

Edycja zawartości tworzonego menu jest możliwa po osadzeniu kontrolki MenuStrip, która znajduję się w grupie Menu i paski narzędzi

Edycja zawartości tworzonego menu

Każdy kolejny element menu dodajemy tak jak pokazuje to poniższa ilustracja

Edycja zawartości tworzonego menu Visual Studio c#

Efekt wykonania tych czynności ma poniższą postać

menu Visual Studio c#

Jeżeli przewidujemy wizualne grupowanie opcji menu w postaci poziomej kreski, to w miejsce podawania nazwy pojedynczego zasobu wprowadzamy znak myślnika (-)

pozioma kreska w menu Visual studio c#

Efekt

pozioma linia w menu Visual studio c#

Krok 3. Wspólna obsługa zdarzenia Clik opcji tworzonego menu

Dodanym opcjom menu przypisujemy wspólne zdarzenie obsługi komunikatu kliknięcia. Wybrane opcje zaznaczamy w stan edycji

Wybrane opcje zaznaczamy w stan edycji visual studio c#

Przypisujemy im zdarzenie obsługi kliknięcia

Przypisujemy im zdarzenie obsługi kliknięcia

W tym zdarzeniu będziemy ustalać wybór rodzaju działania matematycznego lub czyszczenia edycyjnego zawartości kontrolek TextBox

Krok 4. Identyfikacja opcji menu

Każdą z opcji menu (jak i każdą inna kontrolkę) można rozróżnić po jej nazwie lub po właściwości Tag. Nazwy jak i właściwość Tag powinny być unikatowe. Przypisujemy właściwość Tag opcjom menu zgodnie z ich przeznaczeniem. Kolejnym kontrolkom opcji menu wprowadzimy odpowiednio tagi: +, -, *, /, czysc

Identyfikacja opcji menu visual studio c#

Krok 5. Deklaracja zmiennych

Zadeklarujemy własny typ wyliczeniowy do obsługi poleceń opcji menu oraz trzy zmienne typu rzeczywistego do wprowadzania danych i wyprowadzania wyniku w postaci komunikatu

public enum DZIALANIE {BRAK,DODAWANIE,ODEJMOWANIE,MNOZENIE,DZIELENIE,CZYSC};
public partial class Form1 : Form
{
private DZIALANIE dzialane = DZIALANIE.BRAK;
float a=0, b=0, wynik=0;
public Form1()

Krok 6. Zapamiętujemy wybraną opcję z menu

Zapamiętanie wybranej opcji będziemy przechowywać w zmiennej prywatnej utworzonego typu wyliczeniowego. W momencie deklaracji przypiszemy jej opcję startową na BRAK

private DZIALANIE dzialane = DZIALANIE.BRAK;

Ciało funkcji zdarzenia kliknięcia w dowolne pole menu będzie zawierać funkcję wielokrotnego wyboru switch. Sprawdzenie wzorca wykonamy po przypisanych tagach. Skorzystamy z zrzutowania obiektu ToolStripMenuItem


private void ToolStripMenuItem2_Click(object sender, EventArgs e)
{
ToolStripMenuItem ts = sender as ToolStripMenuItem;
switch (ts.Tag)
{
case "+":dzialane = DZIALANIE.DODAWANIE;break;
case "-": dzialane = DZIALANIE.ODEJMOWANIE; break;
case "*": dzialane = DZIALANIE.MNOZENIE; break;
case "/": dzialane = DZIALANIE.DZIELENIE; break;
case "czysc": dzialane = DZIALANIE.CZYSC; break;
default: dzialane = DZIALANIE.BRAK;break;
}
toolStripStatusLabel1.Text = "Wybrano działanie " + ts.Tag;
button1.Text = "Wykonaj " + ts.Tag;
}

Wybór opcji wyślemy w postaci komunikatu na pasek stanu tworzonej aplikacji, czyli do kontrolki toolStripStatusLabel

Krok 7. Zabezpieczamy kontrolki edycyjne TxtBox

W zabezpieczeniu będziemy blokować użycie klawiszy alfabetycznych. Zabezpieczenie to nie sprawdza czy dzielimy przez zero. Jego działanie przypiszemy do komunikatu obsługi klawiszy edycyjnych KeyPress wspólnie obu kontrolkom TextBox

private void TextBox1_KeyPress(object sender, KeyPressEventArgs e){
if (e.KeyChar == 8 || e.KeyChar == ',') return;
if (e.KeyChar < '0' || e.KeyChar > '9') e.Handled = true;
if (e.KeyChar == '.') e.KeyChar = ',';
}

Krok 8. Odczyt wprowadzonych danych

Skorzystamy z obsługi zdarzenia KeyUp kontrolek TextBox. Wykorzystamy rzutowanie obiektu TextBox. Kontrolki TextBox musimy rozpoznać aby poprawnie przypisać wartość do zmiennych. Rozpoznanie kontrolek wykonamy po ich właściwości Tag, którą wcześniej należy wprowadzić (analogicznie jak dla tagów opcji menu)


private void TextBox1_KeyUp(object sender, KeyEventArgs e)
{
TextBox tb = sender as TextBox;
if (tb.Text.Length > 0)
{
if (tb.Tag.ToString() == "podaj-a") a = (float)Convert.ToDouble(tb.Text);
if (tb.Tag.ToString() == "podaj-b") b = (float)Convert.ToDouble(tb.Text);
}
}

Krok 9. Wykonanie działań

Wykonanie działań obsłużymy kontrolką Button. W zdarzeniu Click należy rozróżnić wybraną opcję i wykonać działanie matematyczne, którego wynik wyślemy do kontrolki Label


private void Button1_Click(object sender, EventArgs e)
{
switch (dzialane)
{
case DZIALANIE.DODAWANIE: wynik = a + b;break;
case DZIALANIE.ODEJMOWANIE: wynik = a - b; break;
case DZIALANIE.MNOZENIE: wynik = a * b; break;
case DZIALANIE.DZIELENIE: wynik = a/b; break;
case DZIALANIE.CZYSC: textBox1.Text = null; textBox2.Text = null; a = 0; b = 0;wynik = 0; break;
default: return;
}
label3.Text = wynik.ToString();
}

Ćwiczenie sprawdzające

1. Zwróć wynik w oknie dialogowym. Zabezpiecz aplikację przed dzieleniem przez zero



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