winform中使用委托进行窗体之间的传值
一、传统的方式
创建一个公共数据资源类,用于存储窗体2的TextBox的值:
public class ComValue
{
public static string Txtvalue { get; set; }
}
窗体1的代码:
private void button1_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2();
f2.Show();
}
//使用timer 不停的对label2进行复制
private void timer1_Tick(object sender, EventArgs e)
{
label2.Text = ComValue.Txtvalue;
}
窗体2的代码:
private void button1_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2();
f2.Show();
}
private void timer1_Tick(object sender, EventArgs e)
{
label2.Text = ComValue.Txtvalue;
}
这种方式通过使用timer,消耗资源。
二、使用委托传值,将form1为lable2赋值的方法传递给form2
窗体1的代码:
private void button1_Click(object sender, EventArgs e)
{
//将SetValue传递给Form2,让Form2来执行这个方法
Form2 f2 = new Form2(SetValue);
f2.Show();
}
//给label2赋值的方法
void SetValue(string str)
{
label2.Text = str;
}
窗体2的代码:
public delegate void del(string str);
private del de1;
public Form2(del del)
{
this.de1 = del;
InitializeComponent();
} private void button1_Click(object sender, EventArgs e)
{
this.de1.Invoke(textBox1.Text.Trim());//这里最终执行的是窗体1的SetValue函数
}
窗体界面与执行结果:

winform中使用委托进行窗体之间的传值的更多相关文章
- Winform中利用委托实现窗体之间的传值
点击打开按扭,打开传输值窗体 public partial class Form1 : Form { public Form1() { InitializeComponent(); } public ...
- Winform中如何实现父窗体传递数据到子窗体并刷新子窗体
原理:利用委托和事件,本文将以图文并茂的例子讲述,告诉我们So Easy --------------------------------------------------------------- ...
- WinForm中 事件 委托 多线程的应用
WinForm中 事件 委托 多线程的应用[以一个下载进度条为例] 第一步:首先我们创建一个winfor的项目 第二步:我们建一个窗体在一个窗体里面 打开一个另外的窗体 另外的窗体有一个按钮 点击后就 ...
- 在WinForm中使用委托来在其他线程中改变控件的显示
假设winform中有两个控件: 1.ListView用来显示进度的文本提示,ID:listView_progressInfo 2.ProgressBar用来显示进度,ID:progressBar1 ...
- Winform利用委托进行窗体间的传值
在form1.cs中 1.委托的定义 //定义一个委托 public delegate void AddUsrEventHandler(object sender, AddUsrEventHandle ...
- Winform中如何实现子窗体刷新父窗体
原理:利用委托和事件,本文将以图文并茂的例子讲述,告诉我们So Easy --------------------------------------------------------------- ...
- 使用委托实现c#,窗体与窗体之间的传值
主界面: Form1中的代码: namespace _06委托练习_窗体传值{ public partial class Form1 : Form { public Form ...
- WinForm中 事件 委托 多线程的应用【以一个下载进度条为例】
第一步:首先我们创建一个winfor的项目 第二步:我们建一个窗体 在一个窗体里面 打开一个另外的窗体 另外的窗体有一个按钮 点击后就开始下载 下载完成后 在注册窗体上面 显示下载完成(达到在一个窗体 ...
- winform中通过事件实现窗体传值思路【待修改】
Form2向Form1传值 private Form1 form1;//定义一个类型为Form1类型的字段,用于存储传递过来的Form对象 public void Se ...
随机推荐
- 如何解析C语言的声明
一个声明:int *p[] 分为四部分: (1)p (2)p右面的符号(可以什么都没有) (3)p左面的符号(可以什么都没有) (4)最左面的类型说明符 解读一个声明先从p开始,然后的顺序是:右左右左 ...
- Hadoop3.0 WordCount测试一直Accept 状态,Nodes of the cluster 页面node列表个数为0
起因是我运行wordcount测试一直卡主,不能执行,一直处于 Accept 状态,等待被执行,刚开始是各种配置yarn参数,以及host配置,后来发现还是不行 hadoop 集群安装完成后,在500 ...
- set命令详解
我们依然是围绕这几个话题展开学习: 1.什么是set命令? 2.为什么要用set命令? 3.怎样使用set命令? 1.什么是set命令? ♦ set命令作用主要是显示系统中已经存在的shell变量,以 ...
- Android 7.0 启动篇 — init原理(二)(转 Android 9.0 分析)
======================================================== ================================== ...
- Java进阶篇设计模式之七 ----- 享元模式和代理模式
前言 在上一篇中我们学习了结构型模式的组合模式和过滤器模式.本篇则来学习下结构型模式最后的两个模式, 享元模式和代理模式. 享元模式 简介 享元模式主要用于减少创建对象的数量,以减少内存占用和提高性能 ...
- 系统的讲解 - PHP 缓存技术
目录 概述 浏览器缓存 文件缓存 NoSQL缓存 WEB服务器缓存 Opcode缓存 小结 关于缓存的常见问题 概述 缓存已经成了项目中是必不可少的一部分,它是提高性能最好的方式,例如减少网络I/O. ...
- I/O基础之概念
1:I/O流就是常说的输入/输出流,用于数据在内存与存储设备(硬盘,文件等)之间的数据传输. 2 : 分类 根据操作分:输入流与输出流 输入流:将外部设备中的数据(包括网络数据)读入内存 ...
- 项目分层-----MVC
MVC设计模式:modle层,view层,controller层 以前学习的servlet其实就是一个java类,或者说经过规范的java类,实际进行跳转时,还是要在web.xml文件中配置才能正常跳 ...
- 新手学习WEB前端流程以及学习中常见的误区
学习web前端编程技术肯定是以就业拿到高薪工作为主要目的的,可是高薪不会那么轻易拿到,这是一个最简单的道理.没有付出就没有回报,在整个学习web前端编程技术的过程中,你需要付出时间.精力.金钱.废话不 ...
- 通过免费开源ERP构建业界领先的供应链+垂直电商平台成功案例分享
案例客户简介 Healey Green是一家新成立的企业,在线销售和销售园艺机械. 他们的产品范围包括草坪割草机,割灌机,地钻,链锯等. 在一个竞争非常激烈的市场中,这位雄心勃勃的新人将开始接受那些以 ...