首页 > 其他分享 >NumericUpDown 订阅 TextChanged

NumericUpDown 订阅 TextChanged

时间:2024-04-24 19:22:34浏览次数:31  
标签:订阅 控件 NumericUpDown var ValueChanged property TextChanged TextBox

NumericUpDown

WinForm 中 NumericUpDown 控件的 ValueChanged 事件是在输入值失去焦点时触发的(NumericUpDown控件失去焦点时会设置Value值从而引发 ValueChanged 事件)。

问题:ValueChanged 事件虽然也能做到值改变时的通知但是无法做到在输入的过程中值改变时提供及时的反馈。

解决思路:通过查看NumericUpDown的源码发现此控件的内部有个 TextBox 控件访问修饰符是 internal ,可以通过反射获取内部的 TextBox 控件然后通过 订阅 TextBox 控件的 TextChanged 事件即可实现相应的效果。

下面提供获取 NumericUpDown 控件中 TextBox 控件的扩展方法实现,方便需要用此功能的地方进行快速的调用。

        /// <summary>
        /// 获取NumericUpDown的TextBox控件
        /// </summary>
        /// <param name="numericUpDown"></param>
        /// <returns></returns>
        public static TextBox GetNumericUpDownTextBox(this NumericUpDown numericUpDown)
        {
            // 通过反射获取nudTemperatureValue中内部属性 TextBox 
            var type = typeof(NumericUpDown);
            var property = type.GetProperty("TextBox", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);
            if (property.IsNull())
            {
                return null;
            }

            var ctrl = property.GetValue(numericUpDown, null);
            return ctrl as TextBox;
        }

其中 IsNull() 也是一个判空的扩展方法。

标签:订阅,控件,NumericUpDown,var,ValueChanged,property,TextChanged,TextBox
From: https://www.cnblogs.com/lanwah/p/18156143

相关文章

  • Mysql:canal-deployer:如何阻断canal-client对deployer上的filter过滤条件订阅修改:https
     也算是安全管理上的一个控制点:本来,允许客户端去根据自己的实际需求去服务端订阅自己关心的数据流,是很好的。but,但是,服务端的黑白名单过滤,尤其是白名单的filter条件会被客户端的最新订阅的过滤条件给覆盖!!!这算是bug吗?上游服务端怎么显得那么没地位呢!!!??? #===================......
  • 前端如何使用Javascript实现一个简单的发布订阅模式
    在前端开发中,我们经常需要处理事件的订阅与发布,以实现组件之间的解耦和通信。本文将介绍如何使用JavaScript实现一个简单的发布订阅模式,通过分步写代码的方式,带领读者一步步完成实现过程。步骤一:定义EventEmitter类首先,我们需要定义一个名为EventEmitter的类,作为发布订阅......
  • Spring 中的发布-订阅模式
    发布订阅模式是怎样的?现在市面上流行的很多消息中间件就是采用的该种模式,这种模式在实际业务中将事件发布者(Publisher)与事件订阅者(Subscriber)通过额外的事件通道(EventChannel)来解耦,其基本原理与先前提到的观察者模式有些许类似,但发布订阅模式额外存在了EventChannel的......
  • Sql Server数据库 读写分离之发布与订阅
    SqlServer数据库读写分离之发布与订阅1、配置分发2、发布3、订阅订阅我在虚拟机上,注意配置分发,发布,订阅我在这里,三个是同一内网,内网一定要联通,服务器的端口也要打开,不然没发访问......
  • 【最新】Claude Pro订阅充值教程,超大杯模型Claude 3 Opus模型体验方法
    一、关于ClaudePro|Claude3OpusClaude3系列包含三个大模型,按能力由弱到强别是:Claude3Haiku(最小/速度最快)Claude3Sonnet(标准/免费使用)Claude3Opus(最强/需要付费订阅)其中,最强的Opus在多项基准测试中得分都超过了GPT-4和Gemini1.0Ultra,......
  • 观察者模式与发布-订阅模式的对决
    ......
  • 小程序长期订阅消息的支持问题
    希望小程序能够多次发订阅消息,原来有FormID的限制,现在没有了,试过好像可以。但过后发现,第2条消息都返回错误信息:{"errcode":43101,"errmsg":"userrefusetoacceptthemsgrid:660f944c-757489a0-568d916d"}回到小程序后台,发现用的消息是一次性消息但是,长期模版却是空的网上一......
  • 2024年AI订阅、游戏消费、流媒体订阅、域名购买等常用的美元信用卡使用场景科普大全!
    应用场景卡BIN详细应用AI软件支付534786、556150虚拟信用卡用于支付AI软件订阅,如ChatGPTPlus、OpenAI-APIKey、Midjourney、POE等。电商网站购物559666、531993适用于Amazon、Ebay、Etsy、Alibaba、Shopify、Walmart、TikTok、AliExpress、Lazada、Rakuten、Wish、BestBuy、......
  • 使用c++观察者模式完成主题订阅 消息通知
    //造主题,主题是默认的新闻主页,主题下面还有具体的频道:经济、体育、娱乐。这样主题也分为两个层,观察者可以订阅新闻主页,也可以订阅具体的频道。//观察者模式//抽象类观察者classAbsObserver{public:   virtualvoidupdate(stringcontent)=0;//更新的接口};......
  • Vue3连接mqtt订阅消息
    Vue3中使用以及订阅没有安装可使用npminstallmqtt--save(暂时使用了[email protected])页面引入引用mqtt库不要直接引用mqtt会报错importmqttfrom'mqtt/dist/mqtt'代码:1.获取动态配置(关于mqtt的动态配置)<script>////引入mqttimportmqttfrom"mqt......