Korero – Rev 1

Subversion Repositories:
Rev:
using System;
using System.Runtime.InteropServices;
using System.Windows.Forms;

namespace Korero.Utilities.Controls
{
    /// <summary>
    ///     A double buffered tree view.
    /// </summary>
    /// <remarks>https://stackoverflow.com/questions/10362988/treeview-flickering/10364283#10364283</remarks>
    public class BufferedTreeView : TreeView
    {
        #region Static Fields and Constants

        // Pinvoke:
        private const int TVM_SETEXTENDEDSTYLE = 0x1100 + 44;

        private const int TVM_GETEXTENDEDSTYLE = 0x1100 + 45;

        private const int TVS_EX_DOUBLEBUFFER = 0x0004;

        #endregion

        #region Private Overrides

        protected override void OnHandleCreated(EventArgs e)
        {
            SendMessage(Handle, TVM_SETEXTENDEDSTYLE, (IntPtr) TVS_EX_DOUBLEBUFFER, (IntPtr) TVS_EX_DOUBLEBUFFER);
            base.OnHandleCreated(e);
        }

        #endregion

        #region Private Methods

        [DllImport("user32.dll")]
        private static extern IntPtr SendMessage(IntPtr hWnd, int msg, IntPtr wp, IntPtr lp);

        #endregion
    }
}

Generated by GNU Enscript 1.6.5.90.