我有一个包含56个复选框的FlowLayoutPanel。这些复选框用于三态模式。现在来说说有趣的部分。如果复选框未被选中,那么它们就没有使用,可以隐藏以便阅读。为了隐藏它们,我使用另一个复选框。当用户点击该复选框时,使用foreach迭代隐藏FlowPanel中所有未使用的复选框。
问题是,要隐藏它们,foreach调用(checkBox.Visible=false)需要约2-3秒钟,而显示它们(checkBox.Visible=true)只需要0.5秒钟。
有什么建议吗?为什么会出现这种情况?
问题是,要隐藏它们,foreach调用(checkBox.Visible=false)需要约2-3秒钟,而显示它们(checkBox.Visible=true)只需要0.5秒钟。
有什么建议吗?为什么会出现这种情况?
private void hideUnusedPinsCheckBoxClick(objest sender, EventArgs e)
{
bool state = !hideUnusedPinsCheckBox.Checked;
foreach(object obj in flowLayoutPanel.Controls)
{
CheckBox cB = (CheckBox)obj;
if(cB.CheckState == CheckState.Unchecked)
cB.Visible=state;
}
}
flowLayoutPanel
上使用SuspendLayout
和ResumeLayout
函数包装循环吗? - Damien_The_Unbeliever