很犀利的防止自定义的用户控件闪烁方法
2012-12-14 14:06
363 查看
最近在开发WinForm系统时,采用了大量的自定义用户控件,完全运用面向对象,采用领域驱动设计开发方式。这种方式前期工作就是开发大量的自定义用户控件,结果把这些控件放置在窗体上运行时,在切换界面发现有闪烁现象,控件越多,闪烁的越厉害。找了许久,终于找到了这个方法,很犀利,很有效。贴在这里。感谢原作者。
解决方式是在Form及UserControl上重写CreateParams,程式如下,
Form上的Code
C#
VB
UserControl的Code
C#
VB
解决方式是在Form及UserControl上重写CreateParams,程式如下,
Form上的Code
C#
protected override CreateParams CreateParams {
get {
CreateParams cp = base.CreateParams;
cp.ExStyle |= 0x02000000; // Turn on WS_EX_COMPOSITED
return cp;
}
}
VB
Protected Overrides ReadOnly Property CreateParams As System.Windows.Forms.CreateParams
Get
Dim cp As CreateParams = MyBase.CreateParams
cp.ExStyle = cp.ExStyle Or &H2000000
' Turn on WS_EX_COMPOSITED
Return cp
End Get
End Property
UserControl的Code
C#
protected override CreateParams CreateParams {
get {
var parms = base.CreateParams;
parms.Style &= ~0x02000000; // Turn off WS_CLIPCHILDREN
return parms;
}
}
VB
Protected Overrides ReadOnly Property CreateParams As System.Windows.Forms.CreateParams
Get
Dim parms As System.Windows.Forms.CreateParams = MyBase.CreateParams
'Turn off WS_CLIPCHILDREN
parms.Style = (parms.Style And (Not &H2000000))
Return parms
End Get
End Property
參考資料:How
to fix the flickering in User controls
相关文章推荐
- AndrowListView实现(自定义游戏列表)防止屏幕闪烁,设置分割线android中不推荐的方法,要考虑向下兼容,用了推荐的新方法,可能不兼容旧版本系统的手机
- VC防止窗口和控件闪烁的方法
- 用户自定义控件引入js和css的方法
- VC防止窗口和控件闪烁的方法
- VC防止窗口和控件闪烁的方法总结
- VC防止窗口和控件闪烁的方法
- VC防止窗口和控件闪烁的方法
- ASP.Net访问母版页(MasterPage)控件、属性、方法及母版页中调用内容页,获取用户自定义控件里面的子控件的方法
- VC防止窗口和控件闪烁的方法
- VC防止窗口和控件闪烁的方法
- VC防止窗口和控件闪烁的方法
- VC防止窗口和控件闪烁的方法总结
- VC防止窗口和控件闪烁的方法
- ASP.NET 用户控件自定义属性、方法、事件
- VC防止窗口和控件闪烁的方法
- Visual studio.net 2003中使用自定义(用户)控件(服务器控件)的方法(原创)
- VC防止窗口和控件闪烁的方法
- C# WinForm 用户自定义控件闪烁的问题
- VC防止窗口和控件闪烁的方法
- vb.net中用户自定义控件中属性、方法、事件的理解