From 4a1174613819dd33d6421a9ce70f1ba563e61ed3 Mon Sep 17 00:00:00 2001 From: Sunny Date: Mon, 27 May 2024 21:07:35 +0800 Subject: [PATCH] =?UTF-8?q?*=20UITreeView:=20=E9=98=B2=E6=AD=A2=E6=8E=A7?= =?UTF-8?q?=E4=BB=B6=E9=97=AA=E7=83=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SunnyUI/Controls/UITreeView.cs | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/SunnyUI/Controls/UITreeView.cs b/SunnyUI/Controls/UITreeView.cs index 9d5ca948..7f326138 100644 --- a/SunnyUI/Controls/UITreeView.cs +++ b/SunnyUI/Controls/UITreeView.cs @@ -37,6 +37,7 @@ * 2023-11-13: V3.5.2 重构主题 * 2024-01-01: V3.6.2 增加可修改滚动条颜色 * 2024-01-20: V3.6.3 自定义行颜色,可通过代码给颜色值,SetNodePainter,增加选中颜色 + * 2024-05-27: V3.6.6 防止控件闪烁 ******************************************************************************/ using System; @@ -1020,8 +1021,23 @@ namespace Sunny.UI public TreeViewEx() { + base.SetStyle( + ControlStyles.DoubleBuffer | + ControlStyles.OptimizedDoubleBuffer | + ControlStyles.AllPaintingInWmPaint | + ControlStyles.ResizeRedraw | + ControlStyles.SupportsTransparentBackColor, true); + base.UpdateStyles(); + DoubleBuffered = true; DrawMode = TreeViewDrawMode.OwnerDrawAll; - base.DoubleBuffered = true; + } + + protected override void OnHandleCreated(EventArgs e) + { + base.OnHandleCreated(e); + int Style = 0; + if (DoubleBuffered) Style |= 0x0004; + if (Style != 0) Win32.User.SendMessage(Handle, 0x112C, new IntPtr(0x0004), new IntPtr(Style)); } private float DefaultFontSize = -1;