在我的应用程序中,我确实需要在很好的顺序中放置很多控件(标签,文本框,domainupdown)。所以我继续使用嵌套TableLayoutPanel
。现在的问题是,这种形式对大多数事件(调整大小,最大化,最小化和......)的响应速度非常缓慢,因此表格中的控件需要5秒才能调整大小,重新绘制为新的表单大小。TableLayoutPanel对事件的响应速度非常缓慢
我现在正在盯着我的眼睛!如果这种形式在我的家用电脑上很慢(i7 @ 4GHz和一个很好的显卡),它会在工作中的旧P4电脑上做什么?
我甚至试图使用下面的代码,但它确实没有什么,如果它没有减慢它更多!
private void FilterForm_ResizeBegin(object sender, EventArgs e)
{
foreach(TableLayoutPanel tlp in panelFilters.Controls)
{
if(tlp != null)
{
tlp.SuspendLayout();
}
}
}
private void FilterForm_ResizeEnd(object sender, EventArgs e)
{
foreach (TableLayoutPanel tlp in panelFilters.Controls)
{
if (tlp != null)
{
tlp.ResumeLayout();
}
}
}
请让我知道,如果有一种办法可以把TableLayoutPanel中工作得更快......或者,如果你知道一个更好的办法放下控件约百很好地对齐。
拥有较少的控件将成为解决此问题的最终解决方案。 – LarsTech 2012-01-17 20:29:50
这将是理想的......但有些时候你真的需要这些控制! – 2012-01-27 14:13:16
有限制控件的方法。有时你可以消除标签,并在绘画事件中绘制文本。也许考虑[这个答案](http://stackoverflow.com/a/8930446/719186),因为它听起来可能是同一个问题。顺便说一句,你可能不需要像你一样循环控制,只需使用'panelFilters.SuspendLayout();'看看会发生什么。 – LarsTech 2012-01-27 14:26:29