WinForm 使用委托动态更新数据

使用委托动态更新数据

详细代码

        // 声明一个委托,用于更新消息的文本提示
        private delegate void UpdateMsgTextDelegate(string text);
        // 定义一个方法,用于更新控件的文本
        private void UpdateMsgText(string text)
        {
            // 判断是否需要调用Invoke方法
            if (this.txtMesage.InvokeRequired)
            {
                // 创建一个委托实例
                UpdateMsgTextDelegate utd = new UpdateMsgTextDelegate(UpdateMsgText);
                // 使用Invoke方法来执行委托
                this.Invoke(utd, new object[] { text });
            }
            else
            {
                // 直接更新控件的文本
                this.txtMesage.Text = text;
            }
        }

用委托更新DataGrideView数据也是一样的写法

        // 声明一个委托,用于更新DataGrideView
        private delegate void gcRIR2ReflashDelegate(List<RIR2Dto> rIR2Dtos);

        // 定义一个方法,用于更新DataGrideView
        private void gcRIR2Reflash(List<RIR2Dto> rIR2Dtos)
        {
            // 判断是否需要调用Invoke方法
            if (this.gcRIR2.InvokeRequired)
            {
                // 创建一个委托实例
                gcRIR2ReflashDelegate utd = new gcRIR2ReflashDelegate(gcRIR2Reflash);
                // 使用Invoke方法来执行委托
                this.BeginInvoke(utd, new object[] { rIR2Dtos });
            }
            else
            {
                // 直接更新
                this.gcRIR2.DataSource = rIR2Dtos;
            }
        }

调用代码

///调用时直接调用方法
UpdateMsgText("调用委托更新");
gcRIR2Reflash(rIR2s);
posted @   我本梁人  阅读(217)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示