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内存运维操作及常用命令
    Quartz定时任务
    Spark DataSource Option 参数
    Hadoop HDFS命令
    Java,Scala:JDBCUtil,MySqlUtil,PhoenixJDBC
    RedisUtil,Redis工具类
    通过脚本本地下载Jar包
    Redis五种数据类型-设置key的过期时间
    spark整合Phoenix相关案例
    Spark Dataset DataFrame空值null,NaN判断和处理
  • 原文地址:https://www.cnblogs.com/redmoon/p/1667351.html
Copyright © 2011-2022 走看看