From d7684b273def4db499500d201268058cd6416f1f Mon Sep 17 00:00:00 2001 From: H Date: Sun, 20 Sep 2020 19:29:57 +0800 Subject: [PATCH 1/3] =?UTF-8?q?SizeChange=E5=AF=BC=E8=87=B4node=E9=87=8D?= =?UTF-8?q?=E7=BB=98=E9=97=AA=E5=B1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SunnyUI/Controls/UINavMenu.cs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/SunnyUI/Controls/UINavMenu.cs b/SunnyUI/Controls/UINavMenu.cs index 6dd716b4..de7812b7 100644 --- a/SunnyUI/Controls/UINavMenu.cs +++ b/SunnyUI/Controls/UINavMenu.cs @@ -151,7 +151,22 @@ namespace Sunny.UI } } } + /// + /// SizeChange导致treeNode闪屏 + /// + protected override CreateParams CreateParams + { + get + { + CreateParams cp = base.CreateParams; + if (!DesignMode) + { + cp.ExStyle |= 0x02000000; + } + return cp; + } + } protected override void OnSizeChanged(EventArgs e) { base.OnSizeChanged(e); From 47f8ca7f48ba6b1b2cd186fdf8dbcd3c0085df5a Mon Sep 17 00:00:00 2001 From: H Date: Sun, 20 Sep 2020 20:55:39 +0800 Subject: [PATCH 2/3] =?UTF-8?q?SizeChange=E5=AF=BC=E8=87=B4node=E9=87=8D?= =?UTF-8?q?=E7=BB=98=E9=97=AA=E5=B1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SunnyUI/Controls/UINavMenu.cs | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/SunnyUI/Controls/UINavMenu.cs b/SunnyUI/Controls/UINavMenu.cs index de7812b7..35553684 100644 --- a/SunnyUI/Controls/UINavMenu.cs +++ b/SunnyUI/Controls/UINavMenu.cs @@ -154,19 +154,27 @@ namespace Sunny.UI /// /// SizeChange导致treeNode闪屏 /// - protected override CreateParams CreateParams + const int TVM_SETEXTENDEDSTYLE = 0x112C; + const int TVS_EX_DOUBLEBUFFER = 0x0004; + [DllImport("user32.dll", CharSet = CharSet.Auto)] + private static extern IntPtr SendMessage(IntPtr hWnd, int msg, IntPtr wParam, IntPtr lParam); + private void UpdateExtendedStyles() { - get - { - CreateParams cp = base.CreateParams; - if (!DesignMode) - { - cp.ExStyle |= 0x02000000; - } - return cp; + int Style = 0; - } + if (DoubleBuffered) + Style |= TVS_EX_DOUBLEBUFFER; + + if (Style != 0) + SendMessage(Handle, TVM_SETEXTENDEDSTYLE, new IntPtr(TVS_EX_DOUBLEBUFFER), new IntPtr(Style)); } + + protected override void OnHandleCreated(EventArgs e) + { + base.OnHandleCreated(e); + UpdateExtendedStyles(); + } + protected override void OnSizeChanged(EventArgs e) { base.OnSizeChanged(e); From 217fdebc1a85d73dc7114df88de4b72c3c41346f Mon Sep 17 00:00:00 2001 From: H Date: Sun, 20 Sep 2020 21:00:31 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E6=B7=BB=E5=8A=A0sendmessage=E5=87=BD?= =?UTF-8?q?=E6=95=B0=E5=BC=95=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SunnyUI/Controls/UINavMenu.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/SunnyUI/Controls/UINavMenu.cs b/SunnyUI/Controls/UINavMenu.cs index 35553684..3a65c015 100644 --- a/SunnyUI/Controls/UINavMenu.cs +++ b/SunnyUI/Controls/UINavMenu.cs @@ -22,6 +22,7 @@ using System; using System.Collections.Concurrent; +using System.Runtime.InteropServices; using System.ComponentModel; using System.Drawing; using System.Windows.Forms;