优化Windows窗体文本框和组合框

时间:2014-11-15 14:48:59

标签: c# winforms optimization

我已经创建了一个基于Windows窗体(C#)的动态GUI库,我在复杂的窗体中使用它,同时修改了许多控件。

我在尺寸和位置变化时遇到了性能问题,这就是我测量每次更改所需时间的原因。这些是我测量的例子(我实际上有问题):

  • TextBox宽度设置(2,0001毫秒,3929个刻度)
  • TextBox左集(1 msecs,2417 ticks)
  • ComboBox宽度设置(3,0001毫秒,6906个刻度)
  • ComboBox左集(1 msecs,1318 ticks)

首先:我知道TextBox或ComboBox花费2-3毫秒来改变它的宽度并不多,但是如果我把这个时间缩短到尽可能少。每种形式我都有100-300个控件,所以每次调整整个大小时,我会得到400毫秒的延迟 - 1200毫秒,这会产生不好的结果。

其次:如果我有办法避免闪烁,我的表单调整大小会更平滑,而Widths和Lefts正在改变。如果我在整个表单中使用隐藏和显示,我会让表单消失片刻并再次出现。如果我不这样做,控件会闪烁。有没有办法避免闪烁?

编辑:对于组合框而言,我得到的确非常慢,也取决于他们拥有的物品数量。但是为什么项目数会延迟设置的宽度。我正在为组合框时间分享一些额外的结果:

  • ComboBox宽度设置(1毫秒,3056刻度)
  • ComboBox宽度设置(1,0001毫秒,2548个刻度)
  • ComboBox宽度设置(0毫秒,1241刻度)
  • ComboBox宽度设置(1,0001毫秒,1646个刻度)
  • ComboBox宽度设置(1毫秒,1052刻度)
  • ComboBox宽度设置(1,0001毫秒,3626个刻度)

0 个答案:

没有答案