gpt4 book ai didi

c# - 使用包含大量数据的文本框恢复 WinForm

转载 作者:可可西里 更新时间:2023-11-01 09:15:47 25 4
gpt4 key购买 nike

我在 C# (VS2010) 中创建了一个表单,其中包含(除其他外)文本框控件。文本框有时可能包含大量数据(约 300 万个字符)。

当滚动或移动表单时没有遇到任何问题,但是当表单最小化并再次恢复时,会触发重绘序列(我相信),这会导致表单延迟大约 5-10 秒重新粉刷。

我已经尝试过几种解决方案:

  1. 使用双缓冲——根据我的阅读,双缓冲只适用于表单本身而不适用于它的控件

    this.SetStyle(ControlStyles.DoubleBuffer, true);this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);this.SetStyle(ControlStyles.UserPaint, true);

  2. 使用以下命令禁用文本框重新绘制:SendMessage(this.my_textBox.Handle, WM_SETREDRAW, false, 0);并在表单恢复后启用返回。我注意到,如果我不重新启用文本框重绘,也会存在表单重绘延迟。

  3. 使用位图手动双缓冲区——与 #1 类似的结果。

我在某处读到这个问题可能与试图缩小或调整数据量的文本框控件有关,但无法覆盖它。

我以前在 MFC 中有相同的项目,但没有遇到任何重绘或滞后问题。

请告诉我如何解决这个问题。

最佳答案

发现问题了!!!问题与文本框 anchor 属性有关。一旦我删除它,窗口恢复是立即的。顺便说一句,不需要新的自定义类

关于c# - 使用包含大量数据的文本框恢复 WinForm,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14128325/

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