Modyfikacja kontrolek z poziomu innej klasy.

0

W ramach samodoskonalenia pisze sobie odtwarzacz mp3.

Mam główną formę z kontrolkami (przyciski start, stop i label który ma pokazywać czas).
Do obsługi pliku (wczytywanie, odtwarzanie) mam osobną klasę.

Pytanie:
Jak z klasy Mp3Player (dej do obsługi pliku mp3) zmienić zawartość label'a?
Wiem, że można by to zrobić przekazując referencję do labela w konstruktorze klasy Mp3Player.

A czy da się to zrobić za pomocą delegatów?
Coś w tym stylu:
w głównej klasie zrobić metodę uaktualniającą label z czasem i wywoływać go z poziomu klasy Mp3Player (za pomocą delegaty)
Jest to możliwe?

0

jaką referencję do kontrolki?
skąd ta wiedza, aby ui zmieniać poza formsem?

0
gośćabc napisał(a):

jaką referencję do kontrolki?

public class Test
{
Label label = null;

public Test(Label formLabel)
{
	label = formLabel;
}

public UpdateLabelText(string text)
{
	label.Text = text;
}

}

gośćabc napisał(a):

skąd ta wiedza, aby ui zmieniać poza formsem?

To w jaki sposób np zmienić label pokazujący stan odtwarzacza (play, stop, pause)?
W pętli w oddzielnym wątku sprawdzać stan odtwarzacz i na tej podstawie ustawiać odpowiedni tekst?

Wydaje mi się, że powinno być to obsłużone przez zdarzenie PlayStateChange z klasy z odtwarzaczem.

1 użytkowników online, w tym zalogowanych: 0, gości: 1