【发布时间】:2020-09-21 20:51:08
【问题描述】:
我有一个复选框控件列表
public List<CheckBox> _checkBoxes = new List<CheckBox>();
我在运行时使用具有位置和可见性等属性的开关盒添加了一定数量。
这一切都很好,但如果我希望复选框消失或在某些时候被选中,则 GUI 不会更新,列表会用新数据更新,但不会在视觉上更新。
*我最终这样做了* 我在 winfrom 上创建了一堆复选框。创建了一个方法,您可以选择哪些是可见的。然后创建了一个方法来填充类型复选框列表。然后您可以在面板中搜索控件类型,一旦找到该控件,就可以对其进行操作。这并不优雅,可能不是最好的方法,但我是自定义控件和 winforms 的新手。
//search panel for checkboxes
foreach (Control c in panel1.Controls)
{
if (c is CustomControls.RoundedCheckBox)
{
CustomControls.RoundedCheckBox checkBox = c as CustomControls.RoundedCheckBox;
//if it is checked add to list
if(checkBox.Checked)
{
_checkBoxes.Add(checkBox);
}
}
}
【问题讨论】:
-
那你如何更新它们?我假设您尝试首先在表单控件集合中找到您的复选框,然后对其进行操作?
-
很可能列表中的项目与表单上的项目不同。我们需要查看更多代码来诊断此问题...