Te same przyciski różnych tematów?

0

Witam, mam do Was pytanie.
Hmm, trudno to wyjaśnić, ale spróbuję.
Odczytuje ilość folderów w jednym folderze. Dla każdego odczytanego folderu chcę stworzyć osobne... no właśnie, coś (label czy cokolwiek). Po kliknięciu w to ma się pojawiać powiedzmy jeden plik tekstowy, który tam jest, w tym folderze.
Utworzy mi się więc kupa labelów czy czegoś tam, ale niestety nie wiem, ile ich będzie, ale dla każdego labela chce stworzyć coś innego.
Gdy tworzę jakąś ilość labeli, to wszystkie mają takie same nazwy:
Label1 label1 = new Label1();


**Tak więc, podsumowując, da się zrobić jakoś tak, aby dla każdego labela (ale to nie koniecznie musi być label!), była jakiś osobna procedura? To by działało podobnie jak "Spis treści".**

Jak coś jest niejasne to mogę jeszcze wytłumaczyć :)


Pozdrawiam
traCom
0

To stwórz tablice labeli czy czegoś. I dodawaj do nich jakieś zdarzenie np. MouseDoubleClick które coś będzie robić.

0

Da się. Popatrz na ten kod

        int i = 0;
        private void button1_Click(object sender, EventArgs e)
        {
            double losx = (new Random()).NextDouble();
            double losy = (new Random()).NextDouble();
            Button b = new Button();
            b.Name = "Button" + (i++).ToString();
            b.Text = b.Name;
            b.Parent = this;
            b.Location = new Point(Convert.ToInt32(losx * b.Parent.Size.Height), Convert.ToInt32(losy * b.Parent.Size.Width));
            b.Click += button1_Click;
            b.Visible = true;
        }
0

Marcinie, to rozwiązanie jest dobre, tylko jest problem, że dla każdego buttona jest ta sama funkcja - tworzenie nowego.
Dałoby się zrobić tak, że jak się kliknie w nowo powstały button, powiedzmy, będzie wyskakiwał Message z jego nazwą?

0

Nie wiem, czy zauważyłęś, ale w tym kodzie dla każdego nowopowstałego Buttona do akcji .Click przypisywana jest właśnie wykonywana procedura. A żeby wyskoczył Message z nazwą, to musiałbyś zainteresować się parametrem wejściowym do tej (jak i każdej innej) procedury zdarzenia - "object sender". To jest właśnie obiekt, który wywołał daną akcję. Musisz go rzutiować na Buttona, a dalej to z górki/.

0

Dzięki, bardzo mi pomogłeś :)

0

Mam jeszcze jedno pytanie. Gdy klikam na button, to pojawia się nowy. Dałoby się zrobić jakoś tak, żeby po drugim kliknięciu, ten button, który został wcześniej utworzony, wyparował? Po prostu go zniszczyć?

0

Odpowiedź nie wprost, ale jak trochę myślisz to bez problemu sobie poradzisz:

http://stackoverflow.com/questions/10262178/how-to-delete-a-button-run-time

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