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();
               }
           }

    分享到: 更多
  • 相关阅读:
    Linux Shell 用法
    gdb调试用法
    grep 用法总结
    Cmake用法
    Win64/Linux 上PyMouse安装
    两道拓扑排序的问题
    hiho一下第76周《Suzhou Adventure》
    这类问题需要利用二进制的特殊性
    这种题应该诸位处理
    两道人数多,课程少,query多的题
  • 原文地址:https://www.cnblogs.com/redmoon/p/1667351.html
Copyright © 2011-2022 走看看