Winform模态窗体关闭时赋值给打开自身的窗体(C# 事件委托版)
2010-08-24 09:49
429 查看
在日常开发中,经常要打开一个模态窗体,在模态窗体中选择某一项,然后把这项的ID或者Name赋值给打开这个模态窗体的窗体……
在Windows 客户端中,要实现这样的功能是非常简单的,代码也会很优美。当然,这与个人的写法有关系。
比较优美的方式有2种,一种是使用interface编写观察者模式,一种就是使用事件委托。既然在Windows平台中玩耍,那就采用更加灵活的事件委托方式来实现吧。
废话少说,我们来看实现代码吧。(红色加粗为主要中的重要代码)
模态窗体的主要代码:
public partial class SelectForm : Form
{
public event Action<string> ReturnValue;
//..........
private void button1_Click(object sender, EventArgs e)
{
if (ReturnValue != null) ReturnValue(this.textBox1.Text);
this.Close();
}
}
打开模态窗体的窗体的主要代码:
public partial class Form1:Form
{
//..........
void button2_Click(object sender, EventArgs e)
{
SelectForm f = new SelectForm();
f.ReturnValue += (value) =>
{
this.textBox2.Text = value;
};
f.ShowDialog(this);
}
//..........
}
在Windows 客户端中,要实现这样的功能是非常简单的,代码也会很优美。当然,这与个人的写法有关系。
比较优美的方式有2种,一种是使用interface编写观察者模式,一种就是使用事件委托。既然在Windows平台中玩耍,那就采用更加灵活的事件委托方式来实现吧。
废话少说,我们来看实现代码吧。(红色加粗为主要中的重要代码)
模态窗体的主要代码:
public partial class SelectForm : Form
{
public event Action<string> ReturnValue;
//..........
private void button1_Click(object sender, EventArgs e)
{
if (ReturnValue != null) ReturnValue(this.textBox1.Text);
this.Close();
}
}
打开模态窗体的窗体的主要代码:
public partial class Form1:Form
{
//..........
void button2_Click(object sender, EventArgs e)
{
SelectForm f = new SelectForm();
f.ReturnValue += (value) =>
{
this.textBox2.Text = value;
};
f.ShowDialog(this);
}
//..........
}
相关文章推荐
- Winform模态窗体关闭时赋值给打开自身的窗体(C# 事件委托版)
- WINFORM 父窗体Load事件中打开子窗体并关闭自身
- 使用C#打开新窗口关闭旧窗口的方法;winform中防止重复打开多个相同子窗体
- 蛋疼的让C#控制台程序(Console)像窗体(Winform)一样(关闭,托盘图标,事件响应,手动退出等)
- C# WinForm 关闭登陆窗体,打开主窗体的实现.
- 使用C#打开新窗口关闭旧窗口的方法;winform中防止重复打开多个相同子窗体
- C#打开关闭窗体事件顺序
- C# Winform 捕获窗体的最小化和最大化事件、关闭按钮事件
- C# Winform 捕获窗体的最小化和最大化事件、关闭按钮事件【整理】
- C#打开关闭窗体事件顺序
- C# Winform 捕获窗体的最小化和最大化事件、关闭按钮事件 .
- C# WinForm 关闭登陆窗体,打开主窗体的实现.
- 蛋疼的让C#控制台程序(Console)像窗体(Winform)一样(关闭,托盘图标,事件响应,手动退出等)
- 使用C#打开新窗口关闭旧窗口的方法;winform中防止重复打开多个相同子窗体
- c# winform窗体关闭事件
- C# Winform实现捕获窗体最小化、最大化、关闭按钮事件的方法,可通过重写WndProc来实现
- [转]使用C#打开新窗口关闭旧窗口的方法;winform中防止重复打开多个相同子窗体
- C#的委托事件在winform窗体中实现传值备忘
- C#Winform实现程序关闭隐藏窗体,二次程序启动时显示
- C#中winform中区分Close()和点击窗体右上角关闭按钮来关闭窗体