Ich habe eine Form1
, die eine Liste der Schüler in einem ListBox
zeigt.Hinzufügen von Elementen aus einer Liste zu einer anderen Liste in einem anderen Formular in C#
Ich benutze Form2
, um diese Liste von Studenten zu füllen, gut möchte ich.
Form2
ist für die Aktualisierung der in Form1
bei jedem Klicken auf eine Schaltfläche in Form2
vorgesehen.
was ich versuche herauszufinden, wie man das eigentlich macht? Weil ich habe versucht, diese
Form1:
public List<Student> studentList_Form1;
public List<Student> StudentList_Form1
{
get
{
return studentList_Form1;
}
}
Form2:
public List<Student> studentList = new List<Student>();
private void update_main_student_list()
{
using (Form1 newForm = new Form1())
{
foreach(Student s in studentList)
{
newForm.StudentList_Form1.Add(s);
}
}
//As well as the code to populate studentList
}
Aber ich erhalte eine Fehlermeldung, ich brauche zu überprüfen, ob s, wenn null, bevor ich es verwenden .
Student
ist eine Klasse, die aus einem String name, String-Adresse, int id
Ihre Liste aus form1 wird re = initialisiert, da Sie eine Instanz für Form1 erstellen "using (Form1 newForm = new Form1())", Sie müssen keine Instanz erstellen –
Die 'studentList_Form1' wird gelesen Nur damit Sie '.Add()', '' newForm' 'nicht aufrufen können und das Formular, das Sie gerade sehen, zwei verschiedene Instanzen der gleichen Klasse sind, schlage ich vor, Delegate für diesen Kommunikationstyp zu verwenden. –
@ un-lucky - Es ist eine schreibgeschützte Referenz, also '. Add()' ist in Ordnung – Igor