zoukankan      html  css  js  c++  java
  • 在有多个选项都需要刷新数据的时候如何保证不冲突

    如果你的界面上有很多CheckBox或RadioBox的话,互相设置Checked属性,又会引发其他控件的CheckedChanged事件,从而让刷新数据产生混乱。

    下面有个小技巧,直接看码说话:

    Stack<string> _delayRefresh = new Stack<string>();
           private void checkBox1_CheckedChanged(object sender, EventArgs e)
           {
               //本事件添加一个标识
               _delayRefresh.Push("checkBox1_CheckedChanged");
               checkBox2.Checked = true;
               //去除本事件的标识
               _delayRefresh.Pop();
               if (_delayRefresh.Count == 0)
               {
                   //要都没有标识的时候才能刷新数据,
                   //这样就可以保证,那个事件最开始触发,刷新数据就在那个事件中发生
                   RefreshData();
               }
           }

           private void checkBox2_CheckedChanged(object sender, EventArgs e)
           {
               //本事件添加一个标识
               _delayRefresh.Push("checkBox2_CheckedChanged");
              

    //这里做一些设置
              

               //去除本事件的标识
               _delayRefresh.Pop();
               if (_delayRefresh.Count == 0)
               {
                   //要都没有标识的时候才能刷新数据
                   RefreshData();
               }
           }

    分享到: 更多
  • 相关阅读:
    <转>浅谈DNS体系结构:DNS系列之一
    SOA和NS区别
    《浅析各类DDoS攻击放大技术》
    《转》DNS放大攻击
    Linux创建公钥
    MATLAB 中有哪些命令,让人相见恨晚
    SQL中的declare用法
    SQl server 附加数据库失败如何解决
    VS中代码对齐等快捷键
    C#窗口控件Dock的位置顺序调整方法
  • 原文地址:https://www.cnblogs.com/redmoon/p/1667351.html
Copyright © 2011-2022 走看看