winform中通过事件实现窗体传值思路【待修改】
来源:互联网 发布:淘宝seo技巧 编辑:程序博客网 时间:2024/05/22 06:44
Form2向Form1传值
private Form1 form1;//定义一个类型为Form1类型的字段,用于存储传递过来的Form对象
public void SetTextValue(object sender, EventArgs e)//sender 事件源,e包含事件数据的类的基类的对象
{
if (sender is Form1)
{
form1 = sender as Form1;
}
MyEventArgs me = (MyEventArgs)e;
txtNum2.Text=me.Text;
}
public event EventHandler eh2;//定义一个系统事件类型的事件
private void btnBack_Click(object sender, EventArgs e)
{
MyEventArgs me = new MyEventArgs();
me.Text = txtNum2.Text;
eh2 += new EventHandler(form1.SetTextVaule);//注册事件
if (eh2 != null)
{
eh2(this,me);//执行事件
}
this.Close();
}
}
[注]:
1 为什么要定义MyEventArgs?
要通过事件传值,需要定义事件,定义事件需要事件源,包含事件数据的类,而引用系统提供的事件时,系统事件里仅有
// 摘要:
// 表示没有事件数据的事件。
public static readonly EventArgs Empty;
// 摘要:
// 初始化 System.EventArgs 类的新实例。
public EventArgs();
两项,当需要通过事件传递额外的值则不能满足,此时需要自己定义事件类,而此时又容易报
------------------
"无法将类型“System.EventArgs”转换为“_02_事件窗体传值.MyEventArgs”
委托“System.EventHandler”有一些无效参数
参数 2: 无法从“_02_事件窗体传值.MyEventArgs”转换为“System.EventArgs”
------------------
的错误,所以此时为了解决如上问题,可让自定义事件类继承系统定义事件类.
public class MyEventArgs:EventArgs
{
public string Text { get; set; }
}
private Form1 form1;//定义一个类型为Form1类型的字段,用于存储传递过来的Form对象
public void SetTextValue(object sender, EventArgs e)//sender 事件源,e包含事件数据的类的基类的对象
{
if (sender is Form1)
{
form1 = sender as Form1;
}
MyEventArgs me = (MyEventArgs)e;
txtNum2.Text=me.Text;
}
public event EventHandler eh2;//定义一个系统事件类型的事件
private void btnBack_Click(object sender, EventArgs e)
{
MyEventArgs me = new MyEventArgs();
me.Text = txtNum2.Text;
eh2 += new EventHandler(form1.SetTextVaule);//注册事件
if (eh2 != null)
{
eh2(this,me);//执行事件
}
this.Close();
}
}
[注]:
1 为什么要定义MyEventArgs?
要通过事件传值,需要定义事件,定义事件需要事件源,包含事件数据的类,而引用系统提供的事件时,系统事件里仅有
// 摘要:
// 表示没有事件数据的事件。
public static readonly EventArgs Empty;
// 摘要:
// 初始化 System.EventArgs 类的新实例。
public EventArgs();
两项,当需要通过事件传递额外的值则不能满足,此时需要自己定义事件类,而此时又容易报
------------------
"无法将类型“System.EventArgs”转换为“_02_事件窗体传值.MyEventArgs”
委托“System.EventHandler”有一些无效参数
参数 2: 无法从“_02_事件窗体传值.MyEventArgs”转换为“System.EventArgs”
------------------
的错误,所以此时为了解决如上问题,可让自定义事件类继承系统定义事件类.
public class MyEventArgs:EventArgs
{
public string Text { get; set; }
}
0 0
- winform中通过事件实现窗体传值思路【待修改】
- WinForm之通过事件传值来完成添加修改窗体赋值
- C#的委托事件在winform窗体中实现传值备忘
- Winform中利用委托实现窗体之间的传值
- Winform中利用委托实现窗体之间的传值
- VC++.NET winForm中怎样实现两个窗体互相修改对方TextBox的值,我是菜鸟:)
- Winform wpf在一个窗体的事件里,修改另一个窗体控件的值
- WinForm中窗体中的页面传值
- WinForm中窗体中的页面传值
- winform中窗体显示和传值
- C# Winform实现捕获窗体最小化、最大化、关闭按钮事件的方法,可通过重写WndProc来实现
- winform窗体传值
- winform窗体传值
- WinForm窗体传值
- WinForm窗体传值
- Winform窗体传值
- Winform 窗体传值
- C#WinForm中实现异形窗体/控件
- ExtJs表单验证的方法总结
- HDU 1425
- android 线程中访问UI线程的方法
- 客户机-服务器系统通信的三种常用方式
- 如何实现android中监听来电并生成悬浮窗体提示
- winform中通过事件实现窗体传值思路【待修改】
- 查找
- eclipse中clean的方法
- apt-get 命令详解(中文),以及实例
- python ‘yield’和‘Generators(生成器)’
- linux ssh 无密码连接
- 禁用viewstate怎么还保存状态?
- 简易MP3播放器实现
- uml常用流程图以及作用