用委托进行窗体之间回传值
来源:互联网 发布:iphone移动数据不能用 编辑:程序博客网 时间:2024/04/30 06:55
来自:http://blog.csdn.net/mypc2010/article/details/9229791
有这样两个窗体,一个是MainForm,一个是Form2.当我点击MainForm中的按钮,则窗体2显示出来。
然后当我在窗体2中的文本框中输入任意字符,MainForm中的文本框要跟窗体2中的文本框显示同样的内容。
这就涉及到了窗体之间的传值问题。
实现这个效果有很多种方法,这里我说下怎么应用委托来达到窗体之间传值的目的。
首先点击MainForm中的按钮来显示Form2
void ButtonShowFrom2Click(object sender, EventArgs e)
{
Form2 f2 = new Form2 ();
f2.Show();
}
然后,要想实时获取Form2中的内容,我们就得在Form2的TextBoxFrom2中创建一个KeyUp事件。
void TextBoxFrom2KeyUp(object sender, KeyEventArgs e)
{
//当键盘按下时获取到用户输入的内容,并且保持到字符串keywords中。
string keywords = this.textBoxFrom2.Text;
}
那么现在的问题就来了,怎么让MainForm中的文本框显示Form2的文本框中的内容。
首先,我们可以在MainForm中定义一个方法,这个方法接受一个字符串参数,方法的作用就是为MainFrom中的文本框赋值
void updateMainform(string msg)
{
this.textBoxMain.Text=msg;
}
那么我们只要能够在Form2中调用到这个方法,并且将keywords中的值传给这个方法,那么我们就能让MainForm来显示Form2中文本框的值。把一个函数当做参数传递,这时候我们就用到了委托。
新建一个类,名字随便写,里面只需添加这样一句代码。
public delegate void uptextDelegate(string msg);
也就是声明一个委托,这个委托必须跟预委托的方法具有相同的签名,也就是要跟它能够委托的方法具有相同的返回值类型和参数。
之后我们在Form2中添加一个共有字段
public uptextDelegate uptext;
同时在TextBoxFrom2KeyUp这个事件处理函数中添加
uptext.Invoke(keywords);
然后在MainFrom的按钮处理函数中添加
f2.uptext = updateMainform;
把updateMainform方法赋值给uptext这个委托。
到此,整个例子就做完了,如果还有不懂的可以直接下载这个dome看看。
本人QQ:798033502
以书会友城交天下朋友。
例子下载:http://download.csdn.net/detail/mypc2010/5689911
- 用委托进行窗体之间回传值
- "委托" 窗体之间调用
- 委托(泛型委托、lamda表达式、用委托进行窗体传值、多播委托
- 使用事件和委托再两个窗体之间传递数据
- 利用委托事件实现Winform窗体之间的同步刷新
- Winform中利用委托实现窗体之间的传值
- 窗体之间传值(委托,事件,Owner,封装属性)
- Winform中利用委托实现窗体之间的传值
- 如何实现在窗体和窗体之间进行传递数据
- C# 如何通过委托进行窗体1到窗体2的传值
- 用委托实现B窗体刷新A窗体的数据
- 委托————窗体之间传值练习------引出事件的概念
- winform使用委托和事件完成两个窗体之间的通信实例
- 利用委托的方法实现2个窗体之间的通信的一个小练习
- 委托实现窗体间传值
- c#利用委托进行异步跨线程加载到窗体数据
- 多线程中 用委托 操作 窗体的控件
- 委托、窗体传值、多播委托
- Design My Virtual Home之高质量CSS代码建议
- 单点登陆
- 用户登录拦截器
- [珠玑之椟]二分思想与分治法、排序思想
- ASP批量上传和编辑图片
- 用委托进行窗体之间回传值
- Powerdesigner使用心得
- poj 1742 Coins(多重背包)
- 【Wix】Windows Installer Error Code
- eclipse 快捷键使用方法摘要
- plsql回顾(2游标、存储过程)
- Git常用命令
- 验证码的验证
- vmware7安装vmwareTools出现Searching for a valid kernel header path... The path "" is not valid.