日期:2014-05-17  浏览次数:20829 次

c# 两个窗体 传值
加入 我现在有Form1 和Form2 两个窗体 Form1是登陆 界面,现在我想在Form2 的 textbox1 中显示 Form1 中的 textbox1 
上的 账号?怎么做?

------解决方案--------------------
楼上:现在有很多方法,你想得到form1的textbox1的值。你可以把它存在你公共类里。或者是变量,或者用属性。这是一种方法。


另处一个就是页面传值。页面传值一般都是一些大的数据会进行。或是在新打开的窗口控制之前打开窗口的控件为最佳选择。

向你的需求我个人认为一个公共变量或是属性都可以搞定。

楼主:看看下面的这个贴子,讲的很详细。
http://dev.csdn.net/article/26/26433.shtm



------解决方案--------------------
单向传值,可以通过构造函数将值传入。也就是给窗体编写带参数的构造函数。通过构造函数的参数传递特定的值。传多个值定义多个参数即可。当然,也可以使用属性传入。看下面的代码,假设我们建立了一个SubForm窗体它接父窗体传入的值:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace Zhnet
{
public partial class SubForm : Form
{
////使用字段来存储传入的值
private int Rid;
private string Info;

////常规的构造我们可以什么也不做
public SubForm()
{
InitializeComponent();
}

//////重载一种构造来传入值
public SubForm(int _RId, string _Information)
{
Rid = _RId;
Info = _Infomation;
InitializeComponent();
}
}
}
这下在来看看,我们要在父窗体只打开子窗体,并传值给子窗体。看下面代码(在父窗体中显示上面子窗体的代码):
SubForm Form1 = new SubForm(2, "这是传入的字符串值");
Form1.Show(this);
这样就将值传给了子窗体了。
------解决方案--------------------
Form1打开form2的按钮事件里:

Form2 f2 = new Form2();
f2.show();
f2.textbox1.Text = textbox1.Text;
this.Close();

这样就可以了,记住要把Form2窗体中的textbox1的Modifiers属性改成public