public Paard(int id, string naam, Paard moeder, Paard vader) { Id = id; Naam = naam; Moeder = moeder; Vader = vader; }
private void panel1_Paint(object sender, PaintEventArgs e) { if (startPaardID >= 1) { int x = this.panel1.Width / 2; int y = this.panel1.Height - 20; Graphics g = e.Graphics; Paard startPaard = fokkerij.Paarden.Find(p => p.Id == startPaardID); List <Paard> paardenTeTekenen = new List <Paard>(); List <Paard> oudersVanPaardenTeTekenen = new List <Paard>(); paardenTeTekenen.Add(startPaard); while (paardenTeTekenen.Count > 0) { foreach (Paard paard in paardenTeTekenen) { StamboomItem stamboomItem = new StamboomItem(new Point(x, y), paard); panel1.Controls.Add(stamboomItem); y += stamboomItem.Height; bool heeftVader = paard.Vader != null; bool heeftMoeder = paard.Moeder != null; if (heeftVader || heeftMoeder) { g.DrawLine(new Pen(Color.Black), x, y, x, y + 20); y += 20; } if (heeftVader) { oudersVanPaardenTeTekenen.Add(paard.Vader); } if (heeftMoeder) { oudersVanPaardenTeTekenen.Add(paard.Moeder); } } paardenTeTekenen.Clear(); paardenTeTekenen = oudersVanPaardenTeTekenen; oudersVanPaardenTeTekenen.Clear(); i++; } } }
public StamboomItem(System.Drawing.Point coordinatenMiddenOnder, Paard paard, int generatie) { this.coordinatenMiddenOnder = coordinatenMiddenOnder; this.Width = 80; this.Height = 50; int x = coordinatenMiddenOnder.X + (int)this.Size.Width / 2; int y = coordinatenMiddenOnder.Y - (int)this.Size.Height; this.Location = new System.Drawing.Point(x, y); this.Paard = paard; this.ReadOnly = true; this.Multiline = true; this.Text = generatie.ToString() + System.Environment.NewLine + paard.Id + " - " + paard.Naam; }