利用委托传值

public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }
        public Form2(string str,Delegate de) : this()//调用当前空构造函数
        {
            label1.Text = str; //赋值
            this.de = de;//赋值     
        }
        private void Form2_Load(object sender, EventArgs e)
        {

}
        private Delegate de;//定义委托类型字段
        private void button1_Click(object sender, EventArgs e)
        {
            string strmsg = textBox1.Text;
            if (de != null)
            {
                de(strmsg); //委托类型
            }
            this.Close();
        }
    }

public Main1()
        {
            InitializeComponent();
        }

private void button1_Click(object sender, EventArgs e)
        {
            string content = textBox1.Text;
            Form2 frm2 = new Form2(content,MsgStr); //初始化构造函数并赋值,参数中有需要委托类型(注:委托类型)
            frm2.Show();
        }
        private void MsgStr(string str)
        {
            textBox2.Text = str;
        }
    }

时间: 2024-10-27 08:32:11

利用委托传值的相关文章

ajax利用session传值到前台(案例)

后台: public static string TrendChart() { HttpContext context = HttpContext.Current; ReturnStr strReturn = new ReturnStr(); JavaScriptSerializer serializer = new JavaScriptSerializer(); strReturn.msg = serializer.Serialize(list); strReturn.other = Exce

C#中利用委托实现多线程跨线程操作

在使用VS2005的时候,如果你从非创建这个控件的线程中访问这个控件或者操作这个控件的话就会抛出这个异常.这是微软为了保证线程安全以及提高代码的效率所做的改进,但是也给大家带来很多不便. 其实解决这个问题有两种方法:一,是通过设置System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false;在你的程序初始化的时候设置了这个属性,而且在你的控件中使用的都是微软Framework类库中的控件的话,系统就不会再抛出你上面所说的

利用委托自定义事件

事件,这个大家都非常熟悉的名词,代码里几乎离不开它.但是我们平时都是用现成的事件,如果满足不了我们的需求怎么办?那就只能咱自己写了,那么问题就来了,如何自定义事件呢? 在这之前,我们就必须先了解事件与委托的干系是什么,只有弄清楚事物的本质,我们才能掌握住事物的灵魂. 我们先看看最常用的一个事件:Form_Load() public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs

利用委托实现自己的数据缓存仓库

Demo源码 背景 本来想聊聊本文产生的背景的,后来发现本码农词穷了.因此,直入主题,本文的工作是利用委托实现了一个全局的数据缓存仓库. 这个类库接收4个参数:1 您要存储的数据的数据类型 2 获取需要存储数据的方法 3 过期的时间 4 读取该数据的唯一key 这个类库就能够:根据key获取数据,数据通过执行您传入的获取数据的方法来获得,当上一次获取的时间过期后,会重新执行获取数据的方法以更新数据! 推荐的使用方式:1 在应用程序的开端,进行所有需要缓存数据的初始化操作,统一管理所有的key:这

C#中利用委托创建窗体单向通信

初学者在开始学习的时候,对于委托很难做到一下子理解,其中也包括我.委托好比一座大山,没爬上山顶就不能有"一览众山小"的感觉,只有你真正的爬到山顶的时候,才会发现大自然的是神奇. 委托我们可以把它认为是一个类,而不是一个方法.用委托我们可以调用方法,来简化程序,非常像C++中的指针. 使用委托的一般步骤为: (1)定义委托,delegate 返回值类型 委托类型名称(参数列表): (2)声明方法: (3)实例化委托,注意声明的类型要和方法中的类型一样. 下面给出例子,利用委托创建窗体单向

C# Winform利用POST传值方式模拟表单提交数据(Winform与网页交互)

其原理是,利用winfrom模拟表单提交数据,将要提交的参数提交给网页,网页执行代码,得到数据,然后Winform程序将网页的所有源代码读取下来,这样就达到windows应用程序和web应用程序之间传参和现实数据的效果了. - 首先创建一个windows应用程序和web应用程序. - 在web应用程序中,将网页切换到源代码并把源代码中一些没用的代码删掉,只保留头部,在windows应用程序读取网页源码时,这些都会被一起读下来,但这些都是没用的数据,而且删掉没什么影响.需要保留的代码如下: - <

iOS委托传值

iOS委托传值方式在开发中占很重要的地位,可能对于初学者来说一时很难弄明白 博主也是通过不断的找资料,在开发中慢慢学会的! 首先我们假设有A,B两个控制器,A控制器中有一个textField和一个button,B控制器中有一个label 当我们点击A中的button时就得将textField里面的文本值传入到B中的label上显示 在A.h中我们做写入如下代码: 在A.m中的按钮点击事件中我们写入如下代码: 在B.h中导入A.h文件并遵循PassValueDelegate 协议然后实现协议中的方

Unity中利用委托与监听解耦合的思路

这篇随笔是一篇记录性的随笔,记录了从http://www.sikiedu.com/my/course/304,这门课程中学到的内容,附带了一些自己的思考. 一.单例模式的应用 首先假想一种情况,现在需要有一个按钮和一个Text,当按下按钮时,Text上显示“你好”两个字. 一个最常见的方法是在按钮下挂载一个脚本BtnClick,它持有一个Text组件,它由外部的Text拖入来赋值. 在初始化时BtnClick会获取当前游戏物体下的Button组件并为其添加监听,当按下按钮时会修改Text组件中的

Winform中利用委托实现窗体之间的传值

点击打开按扭,打开传输值窗体 public partial class Form1 : Form 2 { 3 public Form1() 4 { 5 InitializeComponent(); 6 } 7 8 public void getValue(string strV) 9 { 10 this.textBox1.Text = strV; 11 } 12 13 private void button1_Click(object sender, EventArgs e) 14 { 15 F