private void LoadPage_DoWork(object sender, DoWorkEventArgs e) { BeginInvoke(new MethodInvoker(delegate { progressBar.Visible = true; progressBar.Value = 0; label1.Text = (pageIndex + 1) + "/" + pages; panelPage.Visible = true; button1.Enabled = false; button2.Enabled = false; button_search.Enabled = false; })); var animes = animeEntries.Skip(pageIndex * entriesPerPage).Take(entriesPerPage); LoadPage.ReportProgress(10); BeginInvoke(new MethodInvoker(delegate { panelEntry.Controls.Clear(); })); float progress = 10; float step = 90f / animes.Count(); foreach (var a in animes) { AnimeEntry entry = new AnimeEntry(a); entry.Dock = DockStyle.Top; BeginInvoke(new MethodInvoker(delegate { entry.Visible = false; panelEntry.Controls.Add(entry); entry.BringToFront(); // entry.BringToFront(); - to add controls in correct order entry.Visible = true; })); System.Threading.Thread.Sleep(100); progress += step; LoadPage.ReportProgress((int)progress); } BeginInvoke(new MethodInvoker(delegate { progressBar.Visible = false; button1.Enabled = true; button2.Enabled = true; button_search.Enabled = true; })); }
public CharacterInfo(Characters character) { InitializeComponent(); this.character = character; CharacterPreview preview = new CharacterPreview(character); preview.Dock = DockStyle.Left; panel1.Controls.Add(preview); seyus = Program.db.CharacterAnime .Where(a => a.CharacterId == character.CharacterId) .Select(a => a.Person) .ToList(); seyus = seyus.Distinct().ToList(); foreach (var seyu in seyus) { var person = new PersonPreview(seyu); panel2.Controls.Add(person); person.Dock = DockStyle.Top; person.BringToFront(); } animes = Program.db.CharacterAnime .Where(a => a.CharacterId == character.CharacterId) .Select(a => a.Anime) .ToList(); animes = animes.Distinct().ToList(); foreach (var anime in animes) { var a = new AnimeEntry(anime); a.Dock = DockStyle.Top; panel3.Controls.Add(a); a.BringToFront(); } }