WinForm后台任务(定时任务)传递消息给主窗体并更新主窗体文本框内容
环境描述:
我们在开发WinForm时,有可能会在初始化程序时启动定时任务(如使用Quartz.Net框架),然后在每次执行定时任务时向主窗体发送消息(如更新主窗体中控件的值),这时候我们就可以使用如下方式来实现。
新建类JobHelperData,并创建委托ExecUploadEvent和委托事件OnExecUploadEvent,ExecUpload代表定时任务执行的方法,代码如下所示:
public class JobHelperData{/// <summary>/// 定义数据上传委托/// </summary>/// <param name="strMsg">发送给主窗体的消息</param>public delegate void ExecUploadEvent(string strMsg);/// <summary>/// 定义ExecUploadEvent委托事件/// </summary>public static event ExecUploadEvent OnExecUploadEvent;/// <summary>/// 定时任务执行方法(上传数据)/// </summary>/// <param name="entity"></param>/// <returns></returns>public OperateModel ExecUpload(SYS_Task entity){//传递消息给主窗体if (OnExecUploadEvent != null){OnExecUploadEvent(addModel.ExecNote);}}}
FrmMain主窗体定义委托UpdateMsgContentEvent和委托事件onUpdateMsgContentEvent,具体代码如下所示:
public partial class FrmMain : Form{#region 定义更新消息文本框内容委托及委托事件/// <summary>/// 定义更新消息文本框内容委托/// </summary>/// <param name="strMsg">定时任务传递过来的消息</param>public delegate void UpdateMsgContentEvent(string strMsg);/// <summary>/// 定义更新消息文本框内容委托事件/// </summary>UpdateMsgContentEvent onUpdateMsgContentEvent = null;#endregionpublic FrmMain(){InitializeComponent();//初始化更新消息文本框内容委托及委托事件JobHelperData.OnExecUploadEvent += OnExecUploadEvent;onUpdateMsgContentEvent = new UpdateMsgContentEvent(UpdateTxtMsgContent);}#region 定义改变消息文本框委托及委托事件public void OnExecUploadEvent(string strMsg){BeginInvoke(onUpdateMsgContentEvent, strMsg);}/// <summary>/// 更新消息文本框的内容/// </summary>/// <param name="strMsg">定时任务传递过来的消息</param>private void UpdateTxtMsgContent(string strMsg){txtMsg.AppendText(strMsg + Environment.NewLine);//将滚动条定位到底部txtMsg.ScrollToCaret();}#endregion}
WinForm后台任务(定时任务)传递消息给主窗体并更新主窗体文本框内容相关推荐
- 2、Web 窗体的基本控件——文本框控件(TextBox)
2.Web 窗体的基本控件--文本框控件(TextBox) 文本框控件(TextBox) 前端 <%@ Page Language="C#" AutoEventWireup= ...
- java在文本域内添加按钮_JAVA中在窗体中添加了一个文本框,然后再文本框中输入字符,如何...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 具体的代码在这里: import java.awt.FlowLayout; import java.awt.GridLayout; import java ...
- 使用委托(事件)或中介设计模式实现多个Windows窗体文本框的同步
需求 主窗体的文本框内容发生改变的时候,多个子窗体的文本框也发生改变. 中介设计模式 实现 当主窗体的文本框内容发生改变的时候,通过接口向所有实现这个接口的窗体发送一条消息(执行接口中的方法),从而实 ...
- c# 火狐浏览器怎么嵌入窗体中_C#WinForm窗体内Panel容器中嵌入子窗体、程序主窗体设计例子...
C#WinForm父级窗体内Panel容器中嵌入子窗体.程序主窗体设计例子 在项目开发中经常遇到父级窗体嵌入子窗体所以写了一个例子程序,顺便大概划分了下界面模块和配色,不足之处还望指点 主窗体窗体采用 ...
- winform将子窗体添加到主窗体中
1.拖一个 Panel控件到主窗体左边,用于显示左侧菜单,命名为 panelLeftMenu. 2.再拖一个 Button控件到 panelLeftMenu 中,保持默认名称 Button1,Text ...
- winform的子窗体关闭刷新主窗体绑定数据以及刷新的总结
1.其实实现主窗体的刷新无非就是比较简单的调用load事件重新加载数据绑定,但是这样的效果会带来,无状态刷新,页面无法保存上一次的页面状态,比如 刷新前 刷新后 ,如果点击刷新按钮执行的话,那么树形菜 ...
- C#窗口间传递消息(聊天记录)
C#窗口间传递消息 链接:http://blog.csdn.net/chenyuling/archive/2007/05/25/1625907.aspx 链接:http://www.cnblogs.c ...
- JS中调用本地Winform程序并传递参数
场景 JS中调用本地exe程序: JS中调用本地exe程序_BADAO_LIUMANG_QIZHI的博客-CSDN博客 在上面的基础上怎样在js中调用本地winform程序并且传递参数. 注: 博客: ...
- MFC中的模态对话框与非模态对话框的消息循环及消息传递问题(都可以通过SendMessage传递消息)
注意:非模态和模态对话框都有自己的消息响应过程函数WindowPro,只不过他们的调用模态是自己的消息泵,非模态是由父窗体或父窗体的上一级的消息泵来调用.模态对话框和非模态对话框都可以通过SendMe ...
- Android开发--Service和Activity通过广播传递消息
Android的Service也运行在主线程,但是在服务里面是没法直接调用更改UI,如果需要服务传递消息给Activity,通过广播是其中的一种方法: 一.在服务里面发送广播 通过intent传送数据 ...
最新文章
- 风向丨2018,AI 突围
- redis删除list中指定index的值
- 学习笔记(47):Python实战编程-pack布局
- HTML浮动导致高度塌陷,HTML 文档流,设置元素浮动,导致父元素高度无法自适应的解决方法(高度欺骗)...
- cmake could not find openssl_使用CMake构建C++项目
- windows10怎么锁定计算机,别让Windows 10锁住亲友
- CToolBarCtrl工具栏设置总结(转)
- thinkphp中I(parm)用法的注意事项
- LFW database
- laravel下载安装
- 混合线性模型如何检测固定因子和随机因子的显著性以及计算R2
- 简单的WOW DKP系统
- 在Windows上部署一个FHIR服务器(HAPI FHIR)
- 全球家务机器人发展现状及未来趋势
- 基于JavaSSM和微信小程序的智能二维码门禁管理系统
- java 异常提示_Java显示异常信息与异常分类
- 将 laravel 项目内静态文件,css、js、images 部署到七牛云 CDN
- Jquery判断动态表格中行数据是否重复
- 【笔记】openwrt - 单线复用(VLAN):拨号上网、局域网、IPTV
- h5可拖动悬浮按钮_仙剑客栈H5如何双开 2021最新双开神器来袭
热门文章
- Sql server一些常见性能问题的总结
- Linux学习笔记-项目部署01
- agc016B - Colorful Hats(智商题)
- 跑步进入全站 HTTPS ,这些经验值得你看看
- 30.卷1(套接字联网API)---客户/服务器程序设计规范
- 18. web robot
- 98.set_include_path()
- 安卓手机作为中继器-连接Wifi共享该Wifi给PC和手机
- 全文检索(LuceneSolr)
- Tomcat 7 的domain域名配置,Tomcat 修改JSESSIONID