C#利用委托实现窗体间的值传递 .
2013-12-04 16:56
495 查看
A、网上有很多方法,大家可搜一下,都可用。
B、这里只是说明下是只利用委托,学习基本的委托运用。
方法如下:
1、C#建立一个默认工程,默认窗体Form1
2、加入一个新窗体,默认Form2
3、Form1窗体上放一个Label,一个Button,属性分别为:
this.label1.Text = ""; // 清空label的值
this.button1.Text="otherForm"; //设置button显示为otherForm
[c-sharp]
view plaincopyprint?
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
this.label1.Text = "";
this.button1.Text = "otherForm";
}
5、上面的步骤就建立了两个基本的窗体,接下来回到Form1的代码设计视图
拷贝下面代码
[c-sharp]
view plaincopyprint?
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
this.label1.Text = "";
this.button1.Text = "otherForm";
}
private void button1_Click(object sender, EventArgs e)
{
Form2 frm2 = new Form2();
returnValueEvent += new returnValue(Form1_returnValueEvent);
frm2.Show();
}
void Form1_returnValueEvent(string str)
{
// throw new NotImplementedException();
this.label1.Text = str;
}
// 定义委托
public delegate void returnValue(string str);
// 委托的事件
public static event returnValue returnValueEvent;
// 委托的事件的函数
public void doReturnValue(string str)
{
returnValueEvent(str);
}
}
}
7、运行后,就可以在两个窗体间传递参数了
注:重点是第六步中的,对委托的定义和调用
returnValueEvent += new returnValue(Form1_returnValueEvent);
void Form1_returnValueEvent(string str)
{
// throw new NotImplementedException();
this.label1.Text = str;
}
// 定义委托
public delegate void returnValue(string str);
// 委托的事件
public static event returnValue returnValueEvent;
// 委托的事件的函数
public void doReturnValue(string str)
{
returnValueEvent(str);
}
在Form2中的调用,在按钮的click事件中
Form1 frm1 = new Form1();
frm1.doReturnValue(this.textBox1.Text);
运行效果图如下:
B、这里只是说明下是只利用委托,学习基本的委托运用。
方法如下:
1、C#建立一个默认工程,默认窗体Form1
2、加入一个新窗体,默认Form2
3、Form1窗体上放一个Label,一个Button,属性分别为:
this.label1.Text = ""; // 清空label的值
this.button1.Text="otherForm"; //设置button显示为otherForm
[c-sharp]
view plaincopyprint?
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
this.label1.Text = "";
this.button1.Text = "otherForm";
}
[c-sharp] view plaincopyprint? protected override void OnLoad(EventArgs e) { base.OnLoad(e); this.textBox1.Text = ""; this.button1.Text = "input"; } protected override void OnLoad(EventArgs e) { base.OnLoad(e); this.textBox1.Text = ""; this.button1.Text = "input"; }
5、上面的步骤就建立了两个基本的窗体,接下来回到Form1的代码设计视图
拷贝下面代码
[c-sharp]
view plaincopyprint?
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
this.label1.Text = "";
this.button1.Text = "otherForm";
}
private void button1_Click(object sender, EventArgs e)
{
Form2 frm2 = new Form2();
returnValueEvent += new returnValue(Form1_returnValueEvent);
frm2.Show();
}
void Form1_returnValueEvent(string str)
{
// throw new NotImplementedException();
this.label1.Text = str;
}
// 定义委托
public delegate void returnValue(string str);
// 委托的事件
public static event returnValue returnValueEvent;
// 委托的事件的函数
public void doReturnValue(string str)
{
returnValueEvent(str);
}
}
}
[c-sharp] view plaincopyprint? using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace WindowsFormsApplication1 { public partial class Form2 : Form { public Form2() { InitializeComponent(); } protected override void OnLoad(EventArgs e) { base.OnLoad(e); this.textBox1.Text = ""; this.button1.Text = "input"; } private void button1_Click(object sender, EventArgs e) { Form1 frm1 = new Form1(); frm1.doReturnValue(this.textBox1.Text); } } } using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace WindowsFormsApplication1 { public partial class Form2 : Form { public Form2() { InitializeComponent(); } protected override void OnLoad(EventArgs e) { base.OnLoad(e); this.textBox1.Text = ""; this.button1.Text = "input"; } private void button1_Click(object sender, EventArgs e) { Form1 frm1 = new Form1(); frm1.doReturnValue(this.textBox1.Text); } } }
7、运行后,就可以在两个窗体间传递参数了
注:重点是第六步中的,对委托的定义和调用
returnValueEvent += new returnValue(Form1_returnValueEvent);
void Form1_returnValueEvent(string str)
{
// throw new NotImplementedException();
this.label1.Text = str;
}
// 定义委托
public delegate void returnValue(string str);
// 委托的事件
public static event returnValue returnValueEvent;
// 委托的事件的函数
public void doReturnValue(string str)
{
returnValueEvent(str);
}
在Form2中的调用,在按钮的click事件中
Form1 frm1 = new Form1();
frm1.doReturnValue(this.textBox1.Text);
运行效果图如下:
相关文章推荐
- C#利用委托实现窗体间的值传递
- C#利用委托实现窗体间的值传递 .
- C# 利用委托实现窗体间传值
- 图解C#利用委托实现窗体传值
- C# 利用委托实现窗体间传值
- 在.NET中利用委托实现窗体间安全通信
- C#中使用委托创建事件实现两个窗体间通信
- 利用ajax实现前台javascript同c#后台MVC下的aspx.cs文件传递数据的两种方法
- 如何用委托与事件实现winfrom窗体之间值传递
- C#之独特见解实现窗体间传递
- c#利用委托进行异步跨线程加载到窗体数据
- 利用ajax实现前台javascript同c#后台MVC下的controller层传递数据的方法
- Winform中利用委托实现窗体之间的传值
- 在.NET中利用委托实现窗体间通信
- C# 利用接口在窗体间传递消息(很基础很实用)
- c# 用委托和事件实现不同窗体间的通讯(一)
- C# :实现水印与图片合成,并利用Graphics 压缩图像质量 , (委托实现listBox的动态添加提示)
- c# 用委托和事件实现不同窗体间的通讯
- C#中利用委托实现多线程跨线程操作