Przykład jest banalny. Chce pokazać, że da się coś takiego zrobić. Łatwo.

Jak piszę na stronie MSDN: Klasę Label można dziedziczyć (w deklaracji nie ma słowa-klucz sealed).

Pamięcią kontrolki będzie tablica stringów zawierająca 10 poprzednich ustawień tekstu które zostały przypisane do kontrolki.

Definicja własnej kontrolki.

?View Code CSHARP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public class LabelWithMemory : Label
{
    private string[] memory = new String[10];
 
    public string this[int index]
    {
        get
        {
            if (index >= 0 && index < 10)
                return memory[index];
            else
                return "";
        }
        set
        {
            if (index >= 0 && index > 10)
                memory[index] = value;
        }
    }
}

Dostęp do kolejnych komórek pamięci jest przez nazwę naszej labelki i indeks.

Jak to już mamy, pojawił się nowy element w Toolboksie, nasza nowa kontrolka

.Kontrolka w Toolbox

W trybie Design przeciągamy ją w wybrane miejsce.

Krok dalej…

Tak wygląda aplikacja na której wykorzystamy wykonaną przez nas lablekę.

okno programu

W przypadku jak ktoś naciśnie na przycisk zmiany tekstu, to obecny jest zapisany w nazwa labeli oraz w pamięci stringów. Tekst jest pobierany z tekstboksa

?View Code CSHARP
1
2
3
4
5
6
7
8
9
private void btnTextChange_Click(object sender, EventArgs e)
{
    lbMemo.Text = tbTextChange.Text;
    for (int i = 9; i > 0; i--)
    {
       lbMemo[i] = lbMemo[i-1];
    }
    lbMemo[0] = lbMemo.Text;
}

Jeżeli nastąpi zmiana tekstu, to wszystkie poprzednie zostają ‘zepchnięte’ o jeden indeks niżej. Pierwszy indeks przechowuje obecną, najnowszy tekst.

Klawisze od 1-8 korzystają z wspólnej funkcji.

?View Code CSHARP
1
2
3
4
5
6
7
private void NumberButton_Click(object sender, EventArgs e)
{
    Button btnNumer = (Button)sender;
    int index = int.Parse(btnNumer.Text);
 
    lbMemo.Text = lbMemo[index];
}

Funkcja ściąga tekst z klawisza i parsuje go jako cyfrę tak powstaje indeks z którego trzeba ściągnąć tekst.
I tak doszliśmy do końca
Jeśli chciałbyś kod źródłowy to nie krępuj się, prześlij e-mail do mnie(soltys z dopiskiem uznam.org).

Podobne teksty: