• c# winfrom 更新控件时停止刷新,解决闪烁问题


     static Dictionary<Control, bool> m_lstFreezeControl = new Dictionary<Control, bool>();
            /// <summary>
            /// 功能描述:停止更新控件
            /// </summary>
            /// <param name="control">control</param>
            /// <param name="blnToFreeze">是否停止更新</param>
            public static void FreezeControl(Control control, bool blnToFreeze)
            {
                if (blnToFreeze && control.IsHandleCreated && control.Visible && !control.IsDisposed && (!m_lstFreezeControl.ContainsKey(control) || (m_lstFreezeControl.ContainsKey(control) && m_lstFreezeControl[control] == false)))
                {
                    m_lstFreezeControl[control] = true;
                    control.Disposed += control_Disposed;
                    HZCX.Controls.Controls.NativeMethods.SendMessage(control.Handle, 11, 0, 0);
                }
                else if (!blnToFreeze && !control.IsDisposed && m_lstFreezeControl.ContainsKey(control) && m_lstFreezeControl[control] == true)
                {
                    m_lstFreezeControl.Remove(control);
                    HZCX.Controls.Controls.NativeMethods.SendMessage(control.Handle, 11, 1, 0);
                    control.Invalidate(true);
                }
            }
    
            static void control_Disposed(object sender, EventArgs e)
            {
                try
                {
                    if (m_lstFreezeControl.ContainsKey((Control)sender))
                        m_lstFreezeControl.Remove((Control)sender);
                }
                catch { }
            }

    使用方法

                try
                {
                    HZCX.Controls.ControlHelper.FreezeControl(this, true);
                    //你的更新界面操作
                }
                finally
                {
                    HZCX.Controls.ControlHelper.FreezeControl(this, false);
                }
    

      

  • 相关阅读:
    UICollectionView添加 HeaderView FooterView
    Swift-UIDynamic初见
    Swift归档
    通知NSNotication&通知中心NSNoticationCenter
    iOS沙盒
    lldb-320.4.152﹣Debugger commands:
    UIPickerView採摘控件的學習
    hive的优化
    zookeeper简易配置及hadoop高可用安装
    hadoop组件概念理解
  • 原文地址:https://www.cnblogs.com/bfyx/p/11179931.html
Copyright © 2020-2023  润新知