C# removing/adding TableLayoutPanel 的标签太慢
C# removing/adding labels to TableLayoutPanel is too slow
我有一个 table 布局面板,大约有 150 行。
每行有 6 列,在每一列中我都有一个文本标签。
在我的程序中,我希望用户能够在 运行 时间内决定他想看哪些行,这样他就可以 select 多行,然后说 "remove" 来自 table。
他也可以做 "undo" 然后这些行再次出现。
我该怎么做?
我首先动态创建 tlp 和标签:行高设置为 0,标签的可见性设置为 false。
然后用户选择要查看的行,然后我增加行高并将标签的可见性设置为 true。
问题是我有大约 800 个标签,table 需要很长时间才能自行生成...
我确定有办法解决这个问题,但我不知道...
谢谢!
我的解决方案基于@IvanStoev 在他对上一个问题的回答中所写的内容。
这不是最优雅的解决方案,但它确实有效:我只是在开始更新 table 之前添加了一个 tableName.SuspendLayout();
并在完成更新时添加了 tableName.ResumeLayout(true);
,而且它的工作速度要快得多.
如果对此解决方案有任何评论,我们将不胜感激。
我有一个 table 布局面板,大约有 150 行。 每行有 6 列,在每一列中我都有一个文本标签。
在我的程序中,我希望用户能够在 运行 时间内决定他想看哪些行,这样他就可以 select 多行,然后说 "remove" 来自 table。 他也可以做 "undo" 然后这些行再次出现。
我该怎么做? 我首先动态创建 tlp 和标签:行高设置为 0,标签的可见性设置为 false。 然后用户选择要查看的行,然后我增加行高并将标签的可见性设置为 true。
问题是我有大约 800 个标签,table 需要很长时间才能自行生成...
我确定有办法解决这个问题,但我不知道...
谢谢!
我的解决方案基于@IvanStoev 在他对上一个问题的回答中所写的内容。
这不是最优雅的解决方案,但它确实有效:我只是在开始更新 table 之前添加了一个 tableName.SuspendLayout();
并在完成更新时添加了 tableName.ResumeLayout(true);
,而且它的工作速度要快得多.
如果对此解决方案有任何评论,我们将不胜感激。