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

    分享到: 更多
  • 相关阅读:
    AC_9. 分组背包问题
    AC_8. 二维费用的背包问题
    AC_7混合背包问题
    AC_5. 多重背包问题 II
    AC_4. 多重背包问题 I
    AC_3. 完全背包问题
    小郡肝火锅点餐系统——测试部署发布
    Vue脚手架搭建
    归并排序-总结
    小郡肝火锅点餐系统——项目文档
  • 原文地址:https://www.cnblogs.com/redmoon/p/1667351.html
Copyright © 2011-2022 走看看