private void DrawArticles() { pnlButtons.Controls.Clear(); foreach (Article art in (cmbProfile.SelectedItem as Profile).Articles) { art.Button = new ArticleButton(art); pnlButtons.Controls.Add(art.Button); art.Button.Click += (btn, args) => { EditArticleButtonDesignWindow dlg = new EditArticleButtonDesignWindow((Profile)cmbProfile.SelectedItem, art); dlg.ShowDialog(); if (dlg.DialogResult == true) { btnReset.IsEnabled = true; btnSave.IsEnabled = true; cmbProfile.IsEnabled = false; } this.Focus(); }; } DrawNumbers(); }
private void DrawArticles(List<int> positions) { // determine changed articles List<Article> articles = new List<Article>(); foreach (int pos in positions) { Article art = (from a in (cmbProfile.SelectedItem as Profile).Articles where a.Position == pos select a as Article).FirstOrDefault(); // clear area if (art == null) { // get location Point location = new Point(ArticleButton.CalculateArticleLocation(pos).X, ArticleButton.CalculateArticleLocation(pos).Y); foreach (Control c in pnlButtons.Controls) { // location and button match if (c.Location.X == location.X && c.Location.Y == location.Y && c is Button) { pnlButtons.Controls.Remove(c); } } } // draw article (got this position) else { art.Button = new ArticleButton(art); pnlButtons.Controls.Add(art.Button); art.Button.Click += (btn, args) => { EditArticleButtonDesignWindow dlg = new EditArticleButtonDesignWindow((Profile)cmbProfile.SelectedItem, art); dlg.ShowDialog(); if (dlg.DialogResult == true) { btnReset.IsEnabled = true; btnSave.IsEnabled = true; cmbProfile.IsEnabled = false; } this.Focus(); }; art.Button.BringToFront(); } } }