Witam,
Mam problem z dynamicznie tworzonymi kontrolkami, kontrolki się tworzę (poniżej kod, jestem początkującym programistą dlatego proszę o podpowiedź czy tak to powinno się robić),
zapełniłem je również danymi z bazy. Teraz chciałby po naciśnięciu innego klawisza 'zapisz' sprawdzić co zostało wybrane przez użytkownika tylko w kontrolkach ComboBox i taki wybrany text pokazać np. w listBox. Tylko niestety nie wiem jak to zrobić bo kontrolki generują się dynamicznie, nie znam ich nazw, a to ile ich będzie też zależy od tego ile razy użytkownik naciśnie przycisk dodania kontrolek. Czy ma ktoś jakiś pomysł jak to ugryź?
W załączniku zdjęcie które pokazuje jak to wygląda - dodaje przez przycisk dodaj kategorie.
//to jest przycisk do dodawania kontrolek
private void button3_Click(object sender, EventArgs e)
{
Button tmp_przycisk = sender as Button;
KategoriaControls nowedfdfd = new KategoriaControls(tmp_przycisk.Location, ref zmienaliczącakategorie);
ComboBox dynamicComboBox = nowedfdfd.pobierzComBox();
foreach (var tym_kat in lista_kat)
{
dynamicComboBox.Items.Add(tym_kat.Nazwa_kat);
}
this.groupBox1.Controls.Add(dynamicComboBox);
this.groupBox1.Controls.Add(nowedfdfd.pobierzTexBox());
this.groupBox1.Controls.Add(nowedfdfd.pobierzLabel());
}
A tutaj klasa tworząca kontrolki
public class KategoriaControls
{
ComboBox comboboxKat = null;
TextBox textboxKat = null;
Label labelprocent = null;
Point pointComboBox;
Point pointTextBox;
Point pointLabel;
public KategoriaControls(Point punkt_początkowy, ref int licznik)
{
if (licznik == 0)
{
pointComboBox.X = punkt_początkowy.X + 60;
pointComboBox.Y = punkt_początkowy.Y + 40;
pointTextBox.X = pointComboBox.X + 140;
pointTextBox.Y = pointComboBox.Y;
pointLabel.X = pointTextBox.X + 50;
pointLabel.Y = pointComboBox.Y;
}
else
{
pointComboBox.X = (punkt_początkowy.X + 60);
pointComboBox.Y = (punkt_początkowy.Y + 40) + (licznik * 30);
pointTextBox.X = pointComboBox.X + 140;
pointTextBox.Y = pointComboBox.Y;
pointLabel.X = pointTextBox.X + 50;
pointLabel.Y = pointComboBox.Y;
}
comboboxKat = new ComboBox();
comboboxKat.Name = "przycisk" + licznik.ToString();
comboboxKat.Location = pointComboBox;
textboxKat = new TextBox();
Size widthtext = new Size();
widthtext.Width = 47;
textboxKat.Size = widthtext;
textboxKat.Location = pointTextBox;
labelprocent = new Label();
labelprocent.Text = "%";
labelprocent.Location = pointLabel;
licznik += 1;
}
public ComboBox pobierzComBox()
{
return comboboxKat;
}
public TextBox pobierzTexBox()
{
return textboxKat;
}
public Label pobierzLabel()
{
return labelprocent;
}
}