Skocz do zawartości

[C#] Dynamicznie tworzone zmienne lokalne?


Rekomendowane odpowiedzi

Jak stworzyć dynamicznie w jakimś obiekcie inta?

Mam kod tworzący buttony po kolei w każdej linijce:

buttonDelete[i / 4] = new Button();
                    buttonDelete[i / 4].Location = new Point(494, 34 * (i / 4 + 1) + 24);
                    buttonDelete[i / 4].Size = new Size(30, 24);
                    buttonDelete[i / 4].Text = "-";
                    buttonDelete[i / 4].Click += new System.EventHandler(this.myEvent_Click);
                    Controls.Add(buttonDelete[i / 4]);

On jest w for'rze itp. to nie jest zbyt istotne. Chodzi o to, że chce do każdego buttona przyporządkować mój indeks(ten z for-a, chodzi żeby były ponumerowane tak jak ja chce w tej zmiennej).

coś w stylu:

buttonDelete[i / 4].i = new int;
buttonDelete[i / 4].i  = i;

Tylko jak stworzyć właśnie z poziomu innego obiektu zmienną int i w tym nowo utworzonym buttonie do której mógłbym przyporządkować ten indeks?

 

@e: jestem idiotą. Przecież mogę indeksować po indeksie w tablicy <facepalm> No ale tak na przyszłość, da się jakoś tworzyć takie zmienne "na bierząco"? Kiedyś na pewno mi się to przyda :)

 

@e: jestem jeszcze większym idiotą. Nie moge indeksować po tablicy bo indeks potrzebny mi jest wewnątrz buttona. Bo potem mam kod w evencie kliknięcia w stylu

GML
usuńlinijkę(i);
i potrzebuje tego "i" który jest numerem linijki w którym ten button się znajduję. Mógłbym po Y wyliczać, ale chce jakoś "normalniej" :D
Odnośnik do komentarza
Udostępnij na innych stronach

Moment, po co chcesz tworzyć dynamicznie pole w klasie?

class CustomButton:Button 
{
public int index;

public CustomButton(int index_input)
{
index = index_input;
}

}

Przecież w ten sposób możesz dać przyciskowi index. Do iteratora pętli masz dostęp w obrębie tej pętli więc:

for(int i =0; i<10; i++)
{
buttonDelete[i / 4] = new CustomButton(i);
buttonDelete[i / 4].Location = new Point(494, 34 * (i / 4 + 1) + 24);
buttonDelete[i / 4].Size = new Size(30, 24);
buttonDelete[i / 4].Text = "-";
buttonDelete[i / 4].Click += new System.EventHandler(this.myEvent_Click);
Controls.Add(buttonDelete[i / 4]);
}

O ile dobrze Cię zrozumiałem.

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...