关于2个窗体间的传值问题
来源:互联网 发布:php2017行情知乎 编辑:程序博客网 时间:2024/06/02 05:37
这个操作比vb,delphi等环境都要复杂那么一点点.主要是涉及一些托管的概念问题.
关于2个窗体间的传值问题,3个类,一个中间类,用来存放传的值,2个窗体,主窗体一个textbox,一个button,副窗体就一个textbox,当副窗体textbox值变时,主窗体textbox也变!
代码如下:
C#.net:
中间类:
using System;
namespace WindowsApplication1
{
//定义一个委托
public delegate void SendMessage(string s);
public class cResult
{
//声明一个类事件,类型是上面的委托
public event SendMessage txtChange;
//存放结果的中间变量
public string r1 = string.Empty ;
//定义一函数,目的是在form2中调用次函数,然后引发txtChange事件
//而txtChange事件具体实现在form1中,正好可以改变文本框text值
public void ChangeText(string s ){
//判断是否为空
if (txtChange!=null){
//触发事件
txtChange(s);
}
}
}
}
主窗体:
private void button1_Click(object sender, System.EventArgs e)
{
//实例化一个中间类
cResult r = new cResult();
//订阅此类的txtChange事件为SendMessage,具体实现内容在方法:Message中
r.txtChange +=new SendMessage(Message);
//实例化form2
Form2 fr2 = new Form2(r);
//显示form2窗体.fr2.Show()两个窗体都可以看,但是ShowDialog方法,最小化其中一个,另外一个也最小化
fr2.ShowDialog();
}
private void Message(string s)
{
//form2的文本框值给form1的文本框
this.textBox1.Text=s;
}
副窗体:
//定义一个中间类
private cResult r;
//构造函数
public Form2(cResult r):this()
{
//接收从form1传过来的中间类cResult
this.r=r;
}
private void textBox1_TextChanged(object sender, System.EventArgs e)
{
//当文本框改变时,调用中间类的ChangeText函数,从而引发txtChange事件
r.ChangeText(this.textBox1.Text );
}
关于2个窗体间的传值问题,3个类,一个中间类,用来存放传的值,2个窗体,主窗体一个textbox,一个button,副窗体就一个textbox,当副窗体textbox值变时,主窗体textbox也变!
代码如下:
C#.net:
中间类:
using System;
namespace WindowsApplication1
{
//定义一个委托
public delegate void SendMessage(string s);
public class cResult
{
//声明一个类事件,类型是上面的委托
public event SendMessage txtChange;
//存放结果的中间变量
public string r1 = string.Empty ;
//定义一函数,目的是在form2中调用次函数,然后引发txtChange事件
//而txtChange事件具体实现在form1中,正好可以改变文本框text值
public void ChangeText(string s ){
//判断是否为空
if (txtChange!=null){
//触发事件
txtChange(s);
}
}
}
}
主窗体:
private void button1_Click(object sender, System.EventArgs e)
{
//实例化一个中间类
cResult r = new cResult();
//订阅此类的txtChange事件为SendMessage,具体实现内容在方法:Message中
r.txtChange +=new SendMessage(Message);
//实例化form2
Form2 fr2 = new Form2(r);
//显示form2窗体.fr2.Show()两个窗体都可以看,但是ShowDialog方法,最小化其中一个,另外一个也最小化
fr2.ShowDialog();
}
private void Message(string s)
{
//form2的文本框值给form1的文本框
this.textBox1.Text=s;
}
副窗体:
//定义一个中间类
private cResult r;
//构造函数
public Form2(cResult r):this()
{
//接收从form1传过来的中间类cResult
this.r=r;
}
private void textBox1_TextChanged(object sender, System.EventArgs e)
{
//当文本框改变时,调用中间类的ChangeText函数,从而引发txtChange事件
r.ChangeText(this.textBox1.Text );
}
- 关于2个窗体间的传值问题
- 关于winform窗体传值的问题
- 关于第一个窗体隐藏后显示第二个窗体,第二个窗体关闭后显示第一个窗体的问题
- 关于登录窗体的问题
- 父窗体打开子窗体,子窗体在打开孙子窗体的传值问题
- [VB.NET]2个窗体之间的问题!
- 高手帮忙:关于winform中三个窗体传值的问题。
- 求救(关于窗体调用的问题)
- 两个窗体间的传值问题,模态(showModalDialog)窗口
- 窗体传值问题
- 窗体之间的传值问题
- WinForm 模式窗体传值的问题
- c#不同窗体传值的问题
- 不同窗体的控件传值问题
- 关于win2000安装的2个问题
- ???C#中关于多个窗体的运行
- 窗体间的传值
- 2个窗体之间的通信
- MVC
- osworkflow简单教程
- ASP.net 对XML文件的操作
- VC6.0图形处理技术和文字处理技术
- Linux系统服务
- 关于2个窗体间的传值问题
- 一个ASP.net购物车的代码程序.
- 利用osworkflow实现业务流程
- 数据库附加问题
- 设为首页_JS代码
- 红外碳硫分析仪选择指南
- 充分利用ASP.NET的三种缓存提高站点性能
- 事件回调
- SourceAnywhere