Ich erstelle eine Reihe von ComboBoxes basierend auf Benutzereingaben. Ich erstelle die Boxen ganz gut, aber wenn es darum geht, den Text in ihnen zu überprüfen, kämpfe ich.C# Zugriff auf dynamische Steuerelemente Windows Forms
Ich dachte daran, sie vielleicht in einer IList zu speichern, aber das schien bisher nicht zu funktionieren. Das Ziel ist es, den Text von allen auf Knopfdruck zu ändern, aber nach mehreren Versuchen werde ich frustriert.
IList<ComboBox> comboBoxes = new List<ComboBox>();
private void AddComboBox(int i)
{
var comboBoxStudentAttendance = new ComboBox();
comboBoxStudentAttendance.Top = TopMarginDistance(i);
comboBoxStudentAttendance.Items.Add("");
comboBoxStudentAttendance.Items.Add("Present");
comboBoxStudentAttendance.Items.Add("Absent");
comboBoxStudentAttendance.Items.Add("Late");
comboBoxStudentAttendance.Items.Add("Sick");
comboBoxStudentAttendance.Items.Add("Excused");
comboBoxes.Add(comboBoxStudentAttendance);
this.Controls.Add(comboBoxStudentAttendance);
}
Ich versuchte das folgende, aber ohne Erfolg.
private void DistributeAttendanceButton_Click(object sender, EventArgs e)
{
for (int i = 0; i < sampleNum; i++)
{
switch (MasterComboBox.Text)
{
case "Present":
comboBoxes.ElementAt(i).Text = "Present";
break;
}
}
}
Warum Sie eine IList brauchen. Nur eine Liste sollte funktionieren. Das mache ich die ganze Zeit. Dann benutze einfach comboBoxes [i] .Text = "Present"; – jdweng
Ich versuchte diese Änderungen und hatte keinen Erfolg, nicht sicher, ob ich sie falsch implementiere. – ghh1415