From 881b365d908140872a252b338ecbc3516a6d926d Mon Sep 17 00:00:00 2001 From: g3gg0 Date: Sun, 2 Oct 2022 14:12:14 +0200 Subject: [PATCH] reduce flickering on ListView updates --- TeddyBench/Extensions.cs | 20 ++++++++++++++++++++ TeddyBench/TeddyMain.cs | 1 + 2 files changed, 21 insertions(+) create mode 100644 TeddyBench/Extensions.cs diff --git a/TeddyBench/Extensions.cs b/TeddyBench/Extensions.cs new file mode 100644 index 0000000..017be59 --- /dev/null +++ b/TeddyBench/Extensions.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace TeddyBench +{ + public static class Extensions + { + public static void DoubleBuffered(this Control control, bool enable) + { + var doubleBufferPropertyInfo = control.GetType().GetProperty("DoubleBuffered", BindingFlags.Instance | BindingFlags.NonPublic); + doubleBufferPropertyInfo.SetValue(control, enable, null); + } + + } +} diff --git a/TeddyBench/TeddyMain.cs b/TeddyBench/TeddyMain.cs index f19ba3b..2ec8a89 100644 --- a/TeddyBench/TeddyMain.cs +++ b/TeddyBench/TeddyMain.cs @@ -202,6 +202,7 @@ public TeddyMain() lstTonies.LargeImageList.Images.Add("unknown", ResizeImage(Resources.unknown, 128, 128)); lstTonies.LargeImageList.Images.Add("custom", ResizeImage(Resources.custom, 128, 128)); lstTonies.ListViewItemSorter = new ListViewItemComparer(2); + lstTonies.DoubleBuffered(true); cmbSorting.SelectedIndex = 2; Text = TitleString;