[WinForm]委托应用①——窗口之间方法/控件调用
不传参数
第二窗口: public partial class Form2 : Form
{
/// <summary>
/// 定义委托
/// </summary>
public delegate void testDelegate();
/// <summary>
/// 定义委托事件
/// </summary>
public event testDelegate refreshForm;
public Form2()
{
InitializeComponent();
} private void button1_Click(object sender, EventArgs e)
{
//执行委托事件
//具体执行的到底是什么,form2并不关心,
//如果你订阅了我的refreshForm事件,
//那么我执行refreshForm的时候你就必须响应
refreshForm();
this.Close();
}
} 第一窗口:
private void button1_Click(object sender, EventArgs e)
{
Form2 f = new Form2();
//这里订阅Form2的refreshForm()事件,具体你怎么执行我不管,
//我把我的RefreshForm1()绑定在了你的refreshForm()事件上,
//不管你在何时何地执行了你的refreshForm()事件,
//那么我的refreshForm1()事件就会跟着执行,因为我已经抱住你的大腿了!
f.refreshForm += new Form2.testDelegate(RefreshForm1);
f.ShowDialog();
} public void RefreshForm1()
{
button1.Text = "Good job!";
} 传递参数:----------------------------------------------------------------------------------
窗口1:publicpartialclassForm1 : Form
{ public delegate void delegateRef(int a, string b, int c); public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { delegateRef dlg = new delegateRef(Get); Form2 f2 = new Form2(dlg); f2.Show(); } private void Get(int a, string b, int c) { label1.Text = "a=" + a + ",b=" + b + ",c=" + c; } }窗口2:publicpartialclassForm2 : Form
{ private Form1.delegateRef dlg; public Form2(Form1.delegateRef dlg) { InitializeComponent(); this.dlg = dlg; } private void button1_Click(object sender, EventArgs e) { this.dlg(4, "abc", 65); } }[WinForm]委托应用①——窗口之间方法/控件调用的更多相关文章
- C#中父窗口和子窗口之间实现控件互操作
很多人都苦恼于如何在子窗体中操作主窗体上的控件,或者在主窗体中操作子窗体上的控件.相比较而言,后面稍微简单一些,只要在主窗体中创建子窗体的时候,保留所创建子窗体对象即可. 下面重点介绍前一种,目前常见 ...
- [WinForm]WinForm跨线程UI操作常用控件类大全
前言 在C#开发的WinForm窗体程序开发的时候,经常会使用多线程处理一些比较耗时之类的操作.不过会有一个问题:就是涉及到跨线程操作UI元素. 相信才开始接触的人一定会遇上这个问题. 为了解决这个问 ...
- WPF不同线程之间的控件的访问
原文:WPF不同线程之间的控件的访问 WPF不同线程之间的控件是不同访问的,为了能够访问其他线程之间的控件,需要用Dispatcher.Invoke执行一个新的活动即可. 例如: public voi ...
- Windows常见窗口样式和控件风格
Windows常见窗口样式和控件风格 王佰营 徐丽红 一.窗口样式 WS_POPUP 弹出式窗口(不能与WS_CHILDWINDOW样式同时使用)WS_CHILDWINDOW 子窗口(不能与WS_PO ...
- 在Winform开发框架中,利用DevExpress控件实现数据的快速录入和选择
在实际的项目开发过程中,有好的控件或者功能模块,我都是想办法尽可能集成到我的WInform开发框架中,这样后面开发项目起来,就可以节省很多研究时间,并能重复使用,非常高效方便.在我很早之前的一篇博客& ...
- 解决CPC撰写文档报错问题“无法获取“AxforApplication”控件的窗口句柄。不支持无窗口的 ActiveX 控件”
最近公司需要把官方CPC电子申请移植到项目中,在移植完成后,撰写文档总是出现“无法获取“AxforApplication”控件的窗口句柄.不支持无窗口的 ActiveX 控件”,另楼主头疼很久,网上寥 ...
- SNF开发平台WinForm之三-开发-单表选择控件创建-SNF快速开发平台3.3-Spring.Net.Framework
3.1运行效果: 3.2开发实现: 3.2.1 这个开发与第一个开发操作步骤是一致的,不同之处就是在生成完代码之后,留下如下圈红程序,其它删除. 第一个开发地址:开发-单表表格编辑管理页面 http: ...
- 方法控件[置顶] Asp.net总结(一)
本文朋友在青岛逛街的时候突然想到的...这两天就有想写几篇关于方法控件的博客,所以回家到之后就奋笔疾书的写出来发表了 纵观 Asp.net的学习只会之路,可以发现 Asp.net可以分为以下几大块 控 ...
- SNF开发平台WinForm之十五-时间轴控件使用-SNF快速开发平台3.3-Spring.Net.Framework
一.显示效果如下: 二.在控件库里选择UCTimeAxis 拖拽到窗体里. 三.加入以下代码,在load事件里进行调用就可以运行了. #region 给时间轴控件加载数据 private void U ...
随机推荐
- opengl启动过程
GLuint _program = glCreateProgram(); //create shader program GLuint vertShader, fragShader;//顶点着色器,片 ...
- 总结HTML5的学习方法大汇总
html5学习方法之技能清单: 必须掌握基本的Web前端开收技术,其中包括:CSS.HTML.DOM.java.Ajax,jquery,Vue,jquery- mobile,zepto等,在掌握这些技 ...
- 2733:判断闰年-poj
2733:判断闰年 总时间限制: 1000ms 内存限制: 65536kB 描述 判断某年是否是闰年. 输入 输入只有一行,包含一个整数a(0 < a < 3000) 输出 一行,如果 ...
- ionic3中 ion-datetime 全屏可点击问题解决方案
废话不多说,能进来的都应该知道是个什么情况.我也是在网上找了一段时间,才在git上ionic官方团队的Issues中找到了问题解决方法. 第一,给外围包上一层ion-item,但是这有个问题,就是会让 ...
- Mysql实现企业级日志管理、备份与恢复实战
背景 随着业务的发展,公司业务和规模不断扩大,网站积累了大量的用户信息和数据,对于一家互联网公司来说,用户和业务数据是根基.一旦公司的数据错乱或者丢失,对于互联网公司而言就等于说是灭顶之灾,为防止系统 ...
- svn 如果遇到an unversioned directory of the same name already exists的解决办法
svn 如果遇到an unversioned directory of the same name already exists的解决办法 一般这种情况是因为,在一个已经存在的文件夹里做SVN che ...
- 《Clean Code》 代码简洁之道
作者介绍 原文作者: Robert C. Martin, Object Mentor公司总裁,面向对象设计.模式.UML.敏捷方法学和极限编程领域的资深顾问,是<敏捷软件开发:原则.模式.与实践 ...
- HTTP/2之服务器推送(Server Push)最佳实践
商业转载请联系腾讯WeTest获得授权,非商业转载请注明出处. WeTest 导读 HTTP/1.X出色地满足互联网的普遍访问需求,但随着互联网的不断发展,其性能越来越成为瓶颈.IETF在2015 ...
- ElasticSearch 学习记录之ES几种常见的聚合操作
ES几种常见的聚合操作 普通聚合 POST /product/_search { "size": 0, "aggs": { "agg_city&quo ...
- jmeter接口系列:时间戳、加密
JMeter安装配置 从官网下载JMeter的软件包apache-jmeter-x.x.zip,下载完成之后解压打开jmeter.bat即可. 说明 这里使用的jmeter版本是3.0,jdk版本是j ...