Struktury i listy w Visual Studio C#. Część 1
Czym jest struktura danych? Struktura danych to rozbudowany typ wartościowy, który pozwala przy pomocy jednej zmiennej przechowywać wiele zmiennych o różnych wartościach.
Struktura danych odpowiada pojedynczemu wierszowi dowolnej tabeli, w której to kolumny są typami danych przechowywanych w takim wierszu tabeli.
Lista, jest to typ danych odpowiadający kolekcji przypisanych elementów. Elementami danych mogą być typy proste, typy złożone- struktury, klasy. Listy ułatwiają pracę ze zbirami danych.
Cel: Napisz aplikację przechowującą dane w postaci: nazwisko, imię, klasa, które są dodawane do listy

Krok 1. Układ komponentów
- GroupBox- sztuk 3
- StatusStrip- sztuk 1
- Label- sztuk 3
- Button- sztuk 3
- TextBox- sztuk 4
Proponowane rozmieszczenie kontrolek przedstawia poniższy rysunek

W kontrolce StatusStrip uaktywniamy kontrolkę toolStripStatusLabel1

W tym miejscy będziemy wyświetlać informację o aktualnej ilości wpisanych rekordów danych do listy
Całą listę danych będziemy pokazywać w jednej z kontrolek TextBox. Wybranej kontrolce właściwość pola Dock ustaw na Fill

Przypisz tryb pracy w układzie wielu linii.

Dodaj możliwość przewijania zawartości w pionie

Krok 2. Deklarujemy strukturę danych
Deklaracja typu sktrukturalnego odbywa się na podobnych zasadach co innych typów zmiennych. Podajemy nazwę tworzonej struktury oraz nazwę przechowywanych pól, którym nadajemy status publiczny (dzięki czemu będą dostępne spoza struktury)
using System.Windows.Forms;
struct Dane
{
public string nazwisko;
public string imie;
public string klasa;
}
Krok 3. Deklaracja zmiennej strukturalnej i listy
Kod tworzonej aplikacji wymaga zadeklarowania zmiennej utworzonej na zadeklarowanej strukturze danych oraz listy opartej na tej strukturze.
public partial class Form1 : Form
{
private Dane d;
private List<Dane> lista = new List<Dane>();
public Form1()
Po skompilowaniu i uruchomieniu projektu nic nie będzie wykonywane przez program, dopóki nie zaprogramujemy dodawania i wyświetlania elementów listy danych
Krok 4. Funkcja dodająca dane do listy
Napiszemy dwie funkcje pracujące na utworzonej strukturze danych. Jedna z funkcji będzie czyścić zmienną opisaną strukturze, a druga przypisywać jej nowe wartości i dodawać jako kolejny element do listy
private void czyscDana()
{
d.nazwisko = "";
d.imie = "";
d.klasa = "";
}
Funkcja czyscDana() wywołana jest w funkcji dodaj()
private void dodaj()
{
//wyczysc stare dane
czyscDana();
//przypisz nowe dane
d.nazwisko = textBox1.Text;
d.imie = textBox2.Text;
d.klasa = textBox3.Text;
//dodaj do listy
lista.Add(d);
}
Skompiluj program i sprawdź czy nie zawiera błędów kompilacji
Krok 5. Dodajemy kolejne rekordy danych do listy
W zdarzeniu Click przycisku button1 wywołamy funkcje dodającą rekordy danych oraz wyświetlimy informacje o ilości dodanych elementów
private void Button1_Click(object sender, EventArgs e)
{
dodaj();
toolStripStatusLabel1.Text = lista.Count.ToString();
}
Uruchom program i sprawdź jak zmienia się licznik dodawanych elementów

Krok 6. Wyświetlamy całą zawartość listy
Wyświetlenie na ekranie monitora kolejnych elementów listy wymaga użycia dowolnej pętli, która odczyta zgromadzone dane i pokaże je w wybranej kontrolce TextBox, która będzie podawana do ciała funkcji jako jej parametr
Proponowany kod ma postać
private void pokazListe(TextBox tb)
{
tb.Clear();
for(int i = 0; i < lista.Count;i++)
{
tb.AppendText((i+1).ToString()+"*******************"+ Environment.NewLine);
tb.AppendText(lista[i].nazwisko + Environment.NewLine);
tb.AppendText(lista[i].imie + Environment.NewLine);
tb.AppendText(lista[i].klasa + Environment.NewLine);
}
}
Wywołanie tej funkcji przypiszemy do zdarzenia Click przycisku button2
private void button2_Click(object sender, EventArgs e)
{
pokazListe(textBox4);
}
Skompiluj program i sprawdź efekt działania

Ćwiczenie sprawdzające: Dopisz funkcję czyszczącą pola edycyjne