A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 邓建军 中级黑马   /  2013-3-25 20:44  /  1338 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 邓建军 于 2013-3-25 22:55 编辑

如图所示,当我点击Form1的【打开窗口】按钮,弹出Form2,我想实现这样一个功能,当我在Form2的textBox中输入字符串后,点击Form2的【更改】按钮,Form1的textBox中显示Form2的textBox的内容。

未命名2.jpg (18.35 KB, 下载次数: 9)

未命名2.jpg

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

5 个回复

倒序浏览
在Form1窗体的Button事件里创建Form2对象,然后调用Show()方法,在Form2窗体上改Form1窗体上文本框中的值也是这样

评分

参与人数 1黑马币 +6 收起 理由
苏波 + 6

查看全部评分

回复 使用道具 举报
静态成员可以在多个Form间共享数值
如:
先在类中定义一个静态成员:
   class Class1
    {
        public static string msg;
    }
获取要传递的Form2中TextBox中的值:
    Class1.msg = textBox1.Text.Trim();
在另一个Form中获取值:
    TextBox1.Text=Class1.msg;

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 曾玉锋 于 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;

如果楼主不了解委托,可以先看看这部分的知识

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报
通过属性传值。比如form1要传age值给form2,在form2中添加age属性即可。如form1中代码:form2 f = new form2(); f.age=20; 这样,就把20传到form2了。
回复 使用道具 举报
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
}
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马