环境描述:
    我们在开发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后台任务(定时任务)传递消息给主窗体并更新主窗体文本框内容相关推荐

  1. 2、Web 窗体的基本控件——文本框控件(TextBox)

    2.Web 窗体的基本控件--文本框控件(TextBox) 文本框控件(TextBox) 前端 <%@ Page Language="C#" AutoEventWireup= ...

  2. java在文本域内添加按钮_JAVA中在窗体中添加了一个文本框,然后再文本框中输入字符,如何...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 具体的代码在这里: import java.awt.FlowLayout; import java.awt.GridLayout; import java ...

  3. 使用委托(事件)或中介设计模式实现多个Windows窗体文本框的同步

    需求 主窗体的文本框内容发生改变的时候,多个子窗体的文本框也发生改变. 中介设计模式 实现 当主窗体的文本框内容发生改变的时候,通过接口向所有实现这个接口的窗体发送一条消息(执行接口中的方法),从而实 ...

  4. c# 火狐浏览器怎么嵌入窗体中_C#WinForm窗体内Panel容器中嵌入子窗体、程序主窗体设计例子...

    C#WinForm父级窗体内Panel容器中嵌入子窗体.程序主窗体设计例子 在项目开发中经常遇到父级窗体嵌入子窗体所以写了一个例子程序,顺便大概划分了下界面模块和配色,不足之处还望指点 主窗体窗体采用 ...

  5. winform将子窗体添加到主窗体中

    1.拖一个 Panel控件到主窗体左边,用于显示左侧菜单,命名为 panelLeftMenu. 2.再拖一个 Button控件到 panelLeftMenu 中,保持默认名称 Button1,Text ...

  6. winform的子窗体关闭刷新主窗体绑定数据以及刷新的总结

    1.其实实现主窗体的刷新无非就是比较简单的调用load事件重新加载数据绑定,但是这样的效果会带来,无状态刷新,页面无法保存上一次的页面状态,比如 刷新前 刷新后 ,如果点击刷新按钮执行的话,那么树形菜 ...

  7. C#窗口间传递消息(聊天记录)

    C#窗口间传递消息 链接:http://blog.csdn.net/chenyuling/archive/2007/05/25/1625907.aspx 链接:http://www.cnblogs.c ...

  8. JS中调用本地Winform程序并传递参数

    场景 JS中调用本地exe程序: JS中调用本地exe程序_BADAO_LIUMANG_QIZHI的博客-CSDN博客 在上面的基础上怎样在js中调用本地winform程序并且传递参数. 注: 博客: ...

  9. MFC中的模态对话框与非模态对话框的消息循环及消息传递问题(都可以通过SendMessage传递消息)

    注意:非模态和模态对话框都有自己的消息响应过程函数WindowPro,只不过他们的调用模态是自己的消息泵,非模态是由父窗体或父窗体的上一级的消息泵来调用.模态对话框和非模态对话框都可以通过SendMe ...

  10. Android开发--Service和Activity通过广播传递消息

    Android的Service也运行在主线程,但是在服务里面是没法直接调用更改UI,如果需要服务传递消息给Activity,通过广播是其中的一种方法: 一.在服务里面发送广播 通过intent传送数据 ...

最新文章

  1. 风向丨2018,AI 突围
  2. redis删除list中指定index的值
  3. 学习笔记(47):Python实战编程-pack布局
  4. HTML浮动导致高度塌陷,HTML 文档流,设置元素浮动,导致父元素高度无法自适应的解决方法(高度欺骗)...
  5. cmake could not find openssl_使用CMake构建C++项目
  6. windows10怎么锁定计算机,别让Windows 10锁住亲友
  7. CToolBarCtrl工具栏设置总结(转)
  8. thinkphp中I(parm)用法的注意事项
  9. LFW database
  10. laravel下载安装
  11. 混合线性模型如何检测固定因子和随机因子的显著性以及计算R2
  12. 简单的WOW DKP系统
  13. 在Windows上部署一个FHIR服务器(HAPI FHIR)
  14. 全球家务机器人发展现状及未来趋势
  15. 基于JavaSSM和微信小程序的智能二维码门禁管理系统
  16. java 异常提示_Java显示异常信息与异常分类
  17. 将 laravel 项目内静态文件,css、js、images 部署到七牛云 CDN
  18. Jquery判断动态表格中行数据是否重复
  19. 【笔记】openwrt - 单线复用(VLAN):拨号上网、局域网、IPTV
  20. h5可拖动悬浮按钮_仙剑客栈H5如何双开 2021最新双开神器来袭

热门文章

  1. Sql server一些常见性能问题的总结
  2. Linux学习笔记-项目部署01
  3. agc016B - Colorful Hats(智商题)
  4. 跑步进入全站 HTTPS ,这些经验值得你看看
  5. 30.卷1(套接字联网API)---客户/服务器程序设计规范
  6. 18. web robot
  7. 98.set_include_path()
  8. 安卓手机作为中继器-连接Wifi共享该Wifi给PC和手机
  9. 全文检索(LuceneSolr)
  10. Tomcat 7 的domain域名配置,Tomcat 修改JSESSIONID