黑马程序员技术交流社区
标题:
如何实现窗体间传值?
[打印本页]
作者:
邓建军
时间:
2013-3-25 20:44
标题:
如何实现窗体间传值?
本帖最后由 邓建军 于 2013-3-25 22:55 编辑
如图所示,当我点击Form1的【打开窗口】按钮,弹出Form2,我想实现这样一个功能,当我在Form2的textBox中输入字符串后,点击Form2的【更改】按钮,Form1的textBox中显示Form2的textBox的内容。
未命名2.jpg
(18.35 KB, 下载次数: 9)
下载附件
2013-3-25 20:43 上传
作者:
胡志超
时间:
2013-3-25 20:52
在Form1窗体的Button事件里创建Form2对象,然后调用Show()方法,在Form2窗体上改Form1窗体上文本框中的值也是这样
作者:
张怀晶
时间:
2013-3-25 21:49
静态成员可以在多个Form间共享数值
如:
先在类中定义一个静态成员:
class Class1
{
public static string msg;
}
获取要传递的Form2中TextBox中的值:
Class1.msg = textBox1.Text.Trim();
在另一个Form中获取值:
TextBox1.Text=Class1.msg;
作者:
曾玉锋
时间:
2013-3-25 21:58
本帖最后由 曾玉锋 于 2013-3-25 21:59 编辑
用委托变量传值。该委托类型为参数为string类型,无返回值。
在form1中定义一个带string str类型参数的方法update(),方法体中:this.text=str;
在form2中声明一个以上委托类型的变量 p,在按钮的单击事件里,先对p进行判断,如果p!=null,则p(要传的值);
在from1中Form2 f2=new From2()的时候,f2.p=update;
如果楼主不了解委托,可以先看看这部分的知识
作者:
DWC_5101
时间:
2013-3-26 23:16
通过属性传值。比如form1要传age值给form2,在form2中添加age属性即可。如form1中代码:form2 f = new form2(); f.age=20; 这样,就把20传到form2了。
作者:
郑丹丹1990
时间:
2013-3-28 14:09
Form1是一个classa吧!你可以给Form1这个class加一个属性。
把文本框中的值付给这个属性。
在Form2中New 一个Form1,这样你就可以访问Form1中你家那个属性值了,即你期望传递的值。
大概的代码如下(这是伪代码)
public class Form1
{
private string UserName;//这个是Form1的属性值
btnOpenWindow_Click()
{
UserName=txtUserName.Text;
}
}
public class From2
{
window_Load()
{
Form1 form1=new Form1 ();//实例化一个Form1的对象
txtForm2TextBox.Text=form1.UserName;//txtForm2TextBox是Form2中文本框的ID
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2