Я создал небольшую программу отображения кухни, которая отображает заказы на еду. Поэтому я динамически создал панель, которая содержит панель макета таблицы, содержащую отмеченный список и кнопку «Проверить все». Моя проблема в том, что... У меня есть кнопка «Проверить все» на каждой панели макета таблицы, созданная динамически, и каждый раз, когда я нажимаю ее, она проверяет все элементы в последнем созданном CheckedListBox
, а не в том, на который нажали.
Это мой код:
p = new Panel();
p.Size = new System.Drawing.Size(360, 500);
p.BorderStyle = BorderStyle.FixedSingle;
p.Name = "panel";
tpanel = new TableLayoutPanel();
tpanel.Name = "tablepanel";
clb = new CheckedListBox();
tpanel.Controls.Add(b1 = new Button() { Text = "CheckAll" }, 1, 4);
b1.Name = "b1";
b1.Click += new EventHandler(CheckAll_Click);
b1.AutoSize = true;
private void CheckAll_Click(object sender, EventArgs e)
{
var buttonClicked = (Button)sender;
var c = GetAll(this, typeof(CheckedListBox));
for (int i = 0; i < c.Count(); i++)
{
\\any help
}
}
public IEnumerable<Control> GetAll(Control control, Type type)
{
var controls = control.Controls.Cast<Control>();
return controls.SelectMany(ctrl => GetAll(ctrl, type)).Concat(controls).Where(c =>
c.GetType() == type);
}