`

维护UI状态的最懒惰方法

UI 
阅读更多
昨天在检查一个兄弟的程序,程序需要一个功能,就是在任务栏上显示Listview的选中数目,当然这个ListView是支持多选的了,在测试的过程中发现只有鼠标在Listview上MouseMove的时候才能显示出来选中的数目,后来查看了一下Code,发现原来是vb6的Listview不提供选中事件,所以就在MouseMove里边写代码了。

这个办法当然好,但是我想并不是好办法,因为将来可能在工具栏或右键菜单中要增加删除某个item的功能,这样,计算选中数目就麻烦多了。

其实这是一个普遍问题,就是维护UI界面的控件的状态,以前也是觉得麻烦就乱写一气,其实是有一个偷懒的办法的,可以保留一个Timer作为控件状态的监督者,通过这个Timer作为总调度,也可以让状态的维护成为一个定时、单一的过程,这样写起来也可以专注一点,这个办法当然并不通用,但是对付一些简单的应用我想是不成问题的。

BTW:我在北京的妹妹生了个姑娘,庆祝一下。
分享到:
评论

相关推荐

    React-reduxui简化reactredux的UI状态管理

    `redux-ui`旨在简化React与Redux之间的交互,特别是针对UI状态的管理,减轻开发负担,提高开发效率。 `redux-ui`的核心理念是将UI组件的状态提升到store层,但只关注于那些需要在多个组件之间共享或者需要跨组件...

    Android13 删除SystemUI状态栏中的电池图标&删除长按设置图标中电池快捷图标

    Android13 删除SystemUI状态栏中的电池图标&删除长按设置图标中电池快捷图标.patch

    SystemUI状态栏和导航栏的讲解

    本文将深入讲解如何理解和定制SystemUI中的状态栏和导航栏。 一、状态栏布局 状态栏是手机屏幕顶部的一条区域,展示诸如时间、通知图标、系统图标(如信号强度和电池状态)等信息。在Android中,状态栏的布局主要...

    flow-Android UI 状态管理和导航框架 (0积分下载)

    在构建复杂的移动应用时,管理 UI 状态和导航逻辑可能会变得非常复杂。Flow 是 Square 开源的一个框架,它旨在简化这一过程,让开发者能够更容易地命名、导航和管理 UI 状态。 Flow 简介 Flow 是一个由 Square 开发...

    C#WinForm跨线程更新UI的四种方法

    以上四种方法都可以有效地解决WinForms应用中跨线程更新UI的问题,选择哪种方法主要取决于具体需求,如是否需要等待后台操作完成、是否希望简化编程模型等。在实际开发中,通常推荐使用BackgroundWorker,因为它提供...

    android4.0 SystemUI 无状态栏版

    该工具包含 android4.0 SystemUI正常版.apk SystemUI无状态栏版.apk 将其改名为SystemUI.apk 覆盖android4.0系统 /system/app/SystemUI.apk 然后重启即可隐藏状态栏,要恢复正常只需将正常版覆盖并重启即可

    systemui安卓状态栏

    systemui,安卓的系统状态栏。联想a65,a60版

    LabVIEW-UI-.zip_LABVIEW界面_labview ui界面_labview ui_labview 黑色ui_

    11. **文档和注释**:为了方便他人理解和维护,良好的UI设计应配以清晰的注释和文档,解释每个控件的功能和关联的程序逻辑。 通过深入学习和实践这个"LabVIEW UI 演示程序",你将能够掌握LabVIEW界面设计的基本技巧...

    UIState:在Flutter小部件中表示UI状态的最简洁方法

    在Flutter小部件中表示UI状态的最简洁方法。 载入中 成功 失败 用法 获取数据的实时/流表示形式: UIState < String> state = Provider . of < ViewModel> (context).state; 受Kotlin的嵌入式开关的启发: when...

    WPF后台线程更新UI

    - **Invoke方法**:后台线程可以通过调用`Dispatcher`的`Invoke`方法将操作添加到UI线程的消息队列中。一旦UI线程空闲,就会执行这些操作。 ```csharp Dispatcher.Invoke(new Action(() => { // 在这里更新UI })); ...

    非常漂亮后台UI 纯静态UI界面

    作者提到“因为简单所以编程快乐”,意味着该UI设计遵循了简洁原则,使得开发者在实现和维护时也能享受到轻松的工作氛围。 结合“后台UI界面”的标签,我们可以推断出这个UI设计是专为网站或应用的后台管理系统设计...

    用UIAutomation封装了很多实用的方法

    根据UIAutomation封装了很多自定义方法 现在只需要实例化之后 直接调用方法即可完成。比如单击某个按钮,现在只需要直接调用ClickElement,非常实用。 ClickElement 单击指定的自动化元素 ...

    Winform实现多线程异步更新UI(进度及状态信息)

    为了解决这个问题,开发者通常会采用多线程技术,将耗时任务放在后台线程执行,同时确保UI线程能及时更新进度和状态信息。本文将详细讲解如何在WinForm应用中实现多线程异步更新UI。 1. **线程基础知识**:在...

    Systemui10 的启动及UI布局的加载

    总之,SystemUI 的启动是从 SystemServer 的 `startOtherServices()` 方法开始,通过启动 `SystemUIService` 实现的。UI布局的加载涉及窗口管理、视图创建和布局解析等多个环节。对于初学者,掌握这些基础知识是进入...

    Activity如何改变Fragment的UI

    因此,在改变Fragment的UI时,需要确保操作在正确的生命周期方法中执行,避免因Activity状态变化导致的异常。 总之,Activity改变Fragment的UI涉及到多种方法,包括但不限于直接通信、事件总线、数据绑定等。开发者...

    WeifenLuo.WinFormsUI.Docking.dll 源码+示例 支持framwork4 最新版

    WeifenLuo.WinFormsUI.Docking.dll的源码+示例!支持framwork4 最新版。 没错!...DockPanel的LoadFromXml方法,能读取之前保存的子窗体信息,再根据使用者提供的相应处理方法,把子窗体恢复到之前状态

    Android系统定制-SystemUI-下拉状态栏快捷设置新增选项(自动亮度&静音)_Patch

    Android系统定制-SystemUI-下拉状态栏快捷设置新增选项(自动亮度&静音)_Patch 文章链接:https://blog.csdn.net/qq_33750826/article/details/122829104

    uipath 认证45个问题和答案

    - **知识点**:UIPath 提供了一个企业框架模板,旨在简化复杂工作流程的设计和维护。 - **描述**: - **Init 状态**:在这个状态中,通常进行初始化设置,如加载配置文件、建立连接等。 - **TransactionItem 变量*...

    Angularjs和ui-router的一个栗子

    状态可以通过`.state()`方法定义,其中包含`name`、`url`、`templateUrl`和`controller`等属性。 ```javascript app.config(function($stateProvider, $urlRouterProvider) { $urlRouterProvider.otherwise('/home...

Global site tag (gtag.js) - Google Analytics