黑马程序员技术交流社区
标题:
窗体间传值
[打印本页]
作者:
陈行
时间:
2013-10-13 11:22
标题:
窗体间传值
本帖最后由 陈行 于 2013-10-13 15:34 编辑
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string str = textBox1.Text;
Form2 f2 = new Form2();//创建另外一个窗体的对象
f2.Str = str;//把要传的值存起来
f2.ShowDialog();//显示窗体
}
---------------------------------------------------------------
public partial class Form2 : Form
{
string str;
public string Str
{
get { return str; }
set { str = value; }
}
public Form2()
{
InitializeComponent();
}
private void Form2_Load(object sender, EventArgs e)
{
this.Text = str;//窗体2加载的时候 显示传过来的值
问题 this代表的是本类对象 但是对象是在窗体1创建的 并没有传过来对象 这个属性是怎么传过来的???
}
}
作者:
黑色海
时间:
2013-10-13 12:20
你把光标放上去,应该显示string str. 是在同一类中调用本类字段。
作者:
liubeimeng
时间:
2013-10-13 13:20
你的属性是在你实例化的那个窗体中定义的,它只进行了你上边说的存值,然后把值赋给了str
作者:
liubeimeng
时间:
2013-10-13 13:20
你的属性是在你实例化的那个窗体中定义的,它只进行了你上边说的存值,然后把值赋给了str
作者:
liubeimeng
时间:
2013-10-13 13:21
你的属性是在你实例化的那个窗体中定义的,它只进行了你上边说的存值,然后把值赋给了str
作者:
夏闯富
时间:
2013-10-13 15:08
本帖最后由 夏闯富 于 2013-10-13 15:21 编辑
窗体1中创建窗体2的对象是为了调用窗体2下面的str属性,同时在窗体1中给窗体2下面的str属性赋值(这种效果等效于值从窗体1传到窗体2了)。并不是传对象。
this.Text = str;//是表示把属性str的值显示在窗体2上,实际上,如果把this.Text换成一个控件lable1.Text(先拖一个Lable控件到Form2上)就更容易理解了。
窗体间传值的实质: 是两个类之间的调用,在一个类里面实例化 和调用另一个类的属性 并给其赋值。
作者:
陈行
时间:
2013-10-13 15:34
夏闯富 发表于 2013-10-13 15:08
窗体1中创建窗体2的对象是为了调用窗体2下面的str属性,同时在窗体1中给窗体2下面的str属性赋值(这种效果 ...
谢谢啊 明白了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2