gpt4 book ai didi

c# - super 慢的 C# 自定义控件

转载 作者:行者123 更新时间:2023-11-30 18:52:17 25 4
gpt4 key购买 nike

我制作了一个自定义控件,它是一个 FlowLayoutPanel,我在其中放入了一堆其他自定义控件(只是按钮,每个按钮都有三个标签和一个叠加的 PictureBox)

它在大约 100 个按钮的情况下工作正常,但将其增加到 1000 个时就会出现问题。将其提高到 5000,它会在 20 秒后死亡。

我的自定义代码很少,我明智地使用了挂起和恢复布局。

那我做错了什么?我确信我的(相当快的)计算机应该能够处理几千个按钮和标签。

(我对 C# GUI 的东西相当陌生,所以也许我应该做一些完全不同的事情。)

编辑 1:

这几乎是目前唯一的自定义代码:

flowLayoutPanel1.SuspendLayout();
foreach (DataRow row in dt.Rows) // dt is from a DB query
{
flowLayoutPanel1.Controls.Add(new PersonButton(row));
}
flowLayoutPanel1.ResumeLayout();

在 PersonButton 构造函数中:

this.label1.Text = row["FirstName"].ToString().Trim() + " "
+ row["Surname"].ToString().Trim();

(应该还有图,但不知道有没有人看到。)

编辑 2:

我想我真的应该使用 DataGridView 或 ListView,但我想要的不仅仅是一行文本和每行一个小图标;我希望它看起来类似于 firefox (Ctrl + J) 中的下载 View 。 (见截图)

非常感谢您提供的所有信息,顺便说一句。我想我将不得不重新考虑...

alt text http://img156.imageshack.us/img156/1057/capture.png

最佳答案

一个 C# WinForm 应用程序可以处理 1000 个任何类型的控件实例吗?我不是 WinForm 大师,但您对应用程序的期望可能不合理。

您想要显示 1000 多个任何类型的控件这一事实可能表明您正在从错误的方向进行软件设计。

关于c# - super 慢的 C# 自定义控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/587856/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com