如何在两个FORM之间传递变量值?(50分)

  • 主题发起人 主题发起人 sxbing
  • 开始时间 开始时间
S

sxbing

Unregistered / Unconfirmed
GUEST, unregistred user!
在C#中如何做??
 
你只要将变量放在PUBLIC或VAR区域,然后在USES 里添加这个单元的文件就可以引用了
 
先定义好公用变量!
然后在implementation后加上:uses 要调用窗体的单元名称!
例如 uese Unit1
然后想取它的变量怎么赋值都可以了。
 
我是说在c#中如何做??不是在DELHI中
 
不好意思,答错了,我以为是DELPHI了
 
在form1中定义:public int i=0;
在form2中应用变量i:
form1 ss=new form1();
ss.i;
ss.Disposed();
即可!
 
草在墙头说的是一种方法,另外还可以用c#中的delegate来解决。方法如下:
主窗体是Form1类的实例,而从窗体是Form2类的实例。实现从从窗体向主窗体传递数据的方法的主要思路是:首先在Form2类中定义一个委托类型SendMess,这个委托类型中的参数类型为一个字符串类型(就是通过这个类型来传送字符串数据的,当然如果你存在其他类型的数据,可以通过修改这个参数类型来完成),然后根据这个委托类型在Form2类中申明一个Send事件。这样当在Form1类中创建一个Form2类的实例的时候,同时也为这个Form2类实例定义一个Send事件。当在从窗体中单击按钮时,则在按钮的单击事件中触发Send事件,并以从窗体中要传递的字符串作为参数,同时在主窗体中的处理Send事件的代码中,通过TextBox组件的text属性来接收从窗体传递来的字符串数据,至此就实现了把从窗体中的字符串数据传递到主窗体中了。
1.在form1的onload事件里加上这句
myForm.Send += new Form2.SendMess ( Send ) ;
2.在Form1.cs中的class的代码区加入下列代码,下列代码是创建一个Form2类的实例,并初始化:
private Form2 myForm = new Form2 ( ) ;
3.在Form1.cs中的Main函数之后,加入下列代码,下列代码的功能是处理myForm中的Send事件,正是在Send事件中实现从从窗体向主窗体传递字符串数据:
private void Send ( string str )
{
textBox1.Text = str ;
//把接收来的字符串通过TextBox组件显示出来
}
4.用下列代码替换Form1.cs中button1组件的Click事件对应的处理代码,下列代码的作用是显示Form2类的实例myForm:
private void button1_Click ( object sender , System.EventArgs e )
{
myForm.ShowDialog ( ) ;
//显示从窗体
}
5.在Form2.cs的class代码区添加下列代码,下列代码是在Form2类中增加一个事件类型Send,当然首先要定义一个委托类型SendMess:
public delegate void SendMess ( string str ) ;
//定义委托类型
public event SendMess Send ;
//定义一个事件类型
6.用下列代码替换Form2.cs中button2的Click事件对应的处理代码,下列代码的功能是触发Send事件,传递字符串数据:
this.Send();
至此,在上述步骤都正确完成





 
to boy1979:
你说的这种也是一种方法,但过于繁琐,能说说那样处理有什么好处码?
我也是刚学C#!
 
多人接受答案了。
 

Similar threads

回复
0
查看
978
不得闲
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
后退
顶部