【发布时间】:2012-11-18 11:22:16
【问题描述】:
我的表单上有一个简单的 Winforms 多行文本框。每当我调整或移动 TextBox 的大小时,它的内容就会开始疯狂闪烁。这看起来很恶心,甚至可能导致某些用户癫痫发作;-)
有没有办法操纵TextBox的重绘过程来摆脱闪烁?
【问题讨论】:
标签: c# .net winforms textbox flicker
我的表单上有一个简单的 Winforms 多行文本框。每当我调整或移动 TextBox 的大小时,它的内容就会开始疯狂闪烁。这看起来很恶心,甚至可能导致某些用户癫痫发作;-)
有没有办法操纵TextBox的重绘过程来摆脱闪烁?
【问题讨论】:
标签: c# .net winforms textbox flicker
afaik,您无法控制表单上单个控件的调整大小模式... 在我看来,你有两个选择:
http://msdn.microsoft.com/en-us/library/system.windows.forms.control.resizeredraw.aspx
【讨论】:
我在 Hans Passant 撰写的 MSDN 论坛上找到了 working solution。以下代码可以添加到表单中,也适用于所有子控件:
protected override CreateParams CreateParams {
get {
const int WS_EX_COMPOSITED = 0x02000000;
CreateParams cp = base.CreateParams;
cp.ExStyle |= WS_EX_COMPOSITED;
return cp;
}
}
【讨论】:
WS_EX_COMPOSITED。