c#在tablelayout面板中使用不同的子控件会影响应用程序的速度吗

Posted

技术标签:

【中文标题】c#在tablelayout面板中使用不同的子控件会影响应用程序的速度吗【英文标题】:c# Does using different child controls in tablelayout panel effect the application speed 【发布时间】:2021-10-10 13:13:15 【问题描述】:

我正在用 C# 开发一个窗口优化应用程序。在那个项目中,我有 tablelayout 面板。我在所有单元格中添加了图片框。在应用程序中,用户可以在运行时添加列和行。

但是当用户动态添加列或行时,应用程序开始变慢。

我的问题是使用面板而不是图片框会加快速度吗? (面板背景图像属性做同样的工作)或者它没有改变任何东西?

我已经将双缓冲属性设置为 true。

【问题讨论】:

“一个窗口优化应用程序”——有点讽刺的是这种方法是多么未经优化! 所以你的问题本质上是“这是我的程序的截图,为什么它很慢?”。我不确定我们是否能用它做任何事情.. 双缓冲不是一种加快速度的机制 @CaiusJardthanx 发表评论。我只问选择不同的控件对程序的性能有什么影响。哪个更重。图片框还是面板? 【参考方案1】:

我有表格布局面板。我为所有单元格添加了图片框。

如果我理解正确的话,这在 WinForms 中是行不通的。这里所有控件都是实际的 Windows 窗口,具有操作系统级别的句柄和所有需要的消息泵逻辑。再加上表格布局会在其下的每个窗口中触发调整大小,这给它带来了更大的压力。

要么走不那么懒惰的路线,自己在内存位图中绘制所有内容并将其放在PictureBox 中进行显示,要么使用更现代的框架,如 WPF,它没有任何上述限制。事实上,这在 XAML 中是微不足道的。

【讨论】:

感谢您的回复和您的时间。我会考虑你的建议。

以上是关于c#在tablelayout面板中使用不同的子控件会影响应用程序的速度吗的主要内容,如果未能解决你的问题,请参考以下文章

c#的winform TreeView控件中,展开不同的节点,右边显示不同的内容,该怎么做啊,请帮帮我吧,谢谢~

C# 在面板周围拖动控件

C# 在循环中将控件添加到面板

c#控件多行显示不同字体大小

C#:锚定面板不会正确调整大小

C# WinForms 用鼠标拖动控件