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