【发布时间】:2008-12-01 17:25:48
【问题描述】:
我有一个用户可以用鼠标调整大小的控件。当它们向右移动时,我只需更改宽度,一切正常。
但是,当他们移动左侧尺寸时,我必须更改 Left 和 Width 属性。控件的右侧明显抽搐,在新位置显示旧宽度。
如果我使用 Bounds 同时设置 left 和 width ,它仍然会抽搐;我是否将 SetStyle 与 UserPaint、Opaque、OptimizedDoubleBuffer、AllPaintingInWmPaint 或 ResizeRedraw 中的任何一个一起使用;以及它是否是双缓冲的。如果我在控件或其父级上调用 SuspendLayout()/ResumeLayout(),它仍然会抽搐。
当我改变控件的左侧位置和宽度时,如何阻止控件抽动?
【问题讨论】:
-
试过 SetStyle(ControlStyles.UserPaint 或 ControlStyles.Opaque 或 ControlStyles.AllPaintingInWmPaint 或 ControlStyles.DoubleBuffer, True) ?
-
是的,我试过 SetStyle(ControlStyles.ResizeRedraw, false); SetStyle(ControlStyles.Opaque, true); SetStyle(ControlStyles.UserPaint, true); SetStyle(ControlStyles.AllPaintingInWmPaint, true); SetStyle(ControlStyles.OptimizedDoubleBuffer, true);仍然没有运气。