我正在尝试制作一个控件列表。为此,我使用了流布局面板和自定义项。读取 XML 文件后,我用我的项目填充流程布局面板。对于少数项目,一切都很好,但对于流程布局面板中的 371 个项目,出现了问题。流布局面板底部缺少 95 个项目,接缝重叠。我认为,放置这些元素的空间仍在创造中。我附上了一个带有产生效果的屏幕。控件在一个数组中创建,然后我迭代该数组以将控件添加到流布局面板。
http://img510.imageshack.us/img510/3201/screen2011916213527199.jpg
谢谢。
乐:
public delegate void AddHistoryItemDelegate(Control itm);
public void AddHistoryItem(Control itm)
{
if (InvokeRequired)
{
Invoke(new AddHistoryItemDelegate(AddHistoryItem), new object[] { itm });
}
else
{
flowLayoutPanel1.Controls.Add(itm);
}
}
foreach (Control c in histroryItems)
{
controls++;
backgroundWorkerLoadHistory.ReportProgress(controls);
//flowLayoutPanel1.Controls.Add(c);
AddHistoryItem(c);
}
委托(delegate)在那里是因为所有这些都发生在一个单独的线程中。 histroryItems 是一个控件列表。
LE:如果它很重要,我观察到,如果我从列表中删除一个项目,在列表加载后,它就会被安排好。尝试一些技巧来查看在线程末尾添加和删除控件是否有任何效果。
最佳答案
你可以试试这个:
this.flowLayoutPanel1.SuspendLayout();
在添加控件之前:
this.flowLayoutPanel1.ResumeLayout();
添加控件后。也许应该连续执行以下操作:
this.flowLayoutPanel1.PerformLayout();
和/或:
this.flowLayoutPanel1.Refresh();
关于c# - 流布局面板问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7448975/