Ich benutze C# Visual Basic 2017 und ich versuche, eine Listbox zu erstellen, die 3 verschiedene Listen gleichzeitig anzeigen und möchten wissen, ob dies möglich ist. Die Listbox kann zur Zeit jede einzelne Liste mit Hilfe der Funktion ".datasource =" anzeigen. Jede Liste ist vom Typ Klasse, diese Klassen sind alle verschieden, aber es gibt eine Oberklasse und 2 Unterklassen.Mehrere Listen in einem Listenfeld anzeigen
Dies ist, wie ich ausgefüllt habe Namen und die Listen in meiner Form:
public partial class formHome : Form
{
// Naming and creating my lists at class level so other classes such as buttons can access the lists
List<Event> events = new List<Event>();
List<Hospitality> hosps = new List<Hospitality>();
List<Conference> confs = new List<Conference>();
public formHome()
{
InitializeComponent();
// Fill Event list
events.Add(new Event(1, new DateTime(2017, 12, 21), new DateTime(2017, 12, 22), "National Glass Centre", 20, 7.50, "Dynamo Kick off Meeting, Dec 2017"));
events.Add(new Event(2, new DateTime(2017, 12, 15), new DateTime(2017, 12, 16), "Winter Gardens Museum", 30, 2.99, "Nature Preservation Meeting"));
events.Add(new Event(3, new DateTime(2018, 1, 5), new DateTime(2018, 1, 6), "Theatre Royal", 120, 5.00, "Traditional Irish Dancing"));
// Fill Hospitality list
hosps.Add(new Hospitality(4, new DateTime(2017, 12, 21), new DateTime(2017, 12, 22), "Stadium of Light", 100, 25.00, "SAFC Charity Auction", false));
hosps.Add(new Hospitality(5, new DateTime(2017, 11, 19), new DateTime(2017, 11, 20), "Empire Cinema", 200, 7.50, "School Cinema Day", true));
// Fill Conference list
confs.Add(new Conference(6, new DateTime(2017, 11, 15), new DateTime(2017, 11, 16), "Marriot Hotel", 400, 5.00, "NHS Christmas Night Out", false, false));
confs.Add(new Conference(7, new DateTime(2017, 12, 31), new DateTime(2018, 1, 1), "Hilton Hotel", 500, 10.00, "Police New Years Eve Meeting", true, true));
confs.Add(new Conference(8, new DateTime(2018, 2, 4), new DateTime(2018, 2, 5), "Stadiun of Light", 1000, 7.50, "Duke of Edinburgh Award", true, true));
confs.Add(new Conference(9, new DateTime(2018, 3, 5), new DateTime(2018, 3, 6), "St.Peters Campus", 500, 0, "Results Day", false, true));
}
Ereignis ist ein Super sowohl Hospitality and Conference, Hospitality and Conference und die beiden Unterklassen von Ereignisse.
Zur Zeit mit dieser Methode in meinem Listenfeld eine Liste zu einem Zeitpunkt anzuzeigen:
private void btnSeenormal_Click(object sender, EventArgs e)
{
// Clear list box before entering information
liDisplay.DataSource = null;
// Adding list items of type Event to list box
liDisplay.DataSource = events;
}
Wie kann ich alle drei zur gleichen Zeit angezeigt werden, oder wie kann ich die 3-Listen zu einer Einheit verschmelzen?
Vielen Dank im Voraus.
Anstatt 'hosps.Add' und' confs.Add' zu tun, sollten Sie 'events.Add' machen. –
Ich sehe nicht den Grund, dies zu tun, da ich dann nur eine Liste hätte und ich die Aufgabe hätte, die Informationen dem Benutzer nach Typ anzuzeigen. So gibt es 4 Schaltflächen auf dem Formular, die dem Benutzer die Möglichkeit geben, normale Ereignisse, Hospitality-Ereignisse und Konferenzereignisse sowie alle Ereignisse zusammen anzuzeigen. –
Sie können weiterhin 3 Listen verwalten und Hospitality- und Konferenzobjekte zur Liste der Ereignisse und ihrer jeweiligen Listen hinzufügen. –