即兴添加一下

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 @ 2023-10-09 11:29  我本梁人  阅读(154)  评论(0编辑  收藏  举报