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

    分享到: 更多
  • 相关阅读:
    浅入ABP(1):搭建基础结构的 ABP 解决方案
    浅入ABP(2):添加基础集成服务
    GDB 调试 .NET 程序实录
    浅入 ABP 系列(6):数据库配置
    浅入 ABP 系列(4):事件总线
    浅入 ABP系列(3):增加日志组件、依赖注入服务
    模拟IIC总线多设备挂载(12864OLED屏幕+GY30光照传感器)
    RabbitMQ与Kafka选型对比
    .Net在Windows上使用Jenkins做CI/CD的那些事
    Tomcat乱码问题
  • 原文地址:https://www.cnblogs.com/redmoon/p/1667351.html
Copyright © 2011-2022 走看看