窗体件传递数据问题

try-catch-finally 2011-09-06 05:04:30
比如Form1中TextBox1中输入姓名,Form2中的Lable显示输入的姓名,怎么传递?请大家写详细一点,我是个菜鸟。写的详细的我肯定加分多。O(∩_∩)O谢谢
...全文
81 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
qzp000000 2011-09-06
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 hellousb2010 的回复:]

引用 6 楼 qzp000000 的回复:

引用 4 楼 hellousb2010 的回复:

引用 2 楼 aim___ 的回复:

要获取值得话,就要先在 FORM2 中申请 form1 的对象 通过对象访问值 。

form1 f1=new form1()
初始化
这样后那个textbox1里的值就为空了


我没有Form1初始化啊


那帮忙按你原来……
[/Quote]
Label要得到值,要么去Form1那里取,那么就要让TextBox公开,让Form1能够访问到...
要么就是让Label可以访问得到,让Form1能够操作它...

属性 就是干这事滴
a330475187 2011-09-06
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 changjiangzhibin 的回复:]
(一般传值,使用委托会很强大 ,很方便)
说个简单的,在项目里添加一个类,其中放一个public静态变量,如CurName姓名,
这样,Form1中给姓名赋了值,Form2就可以访问到了
[/Quote]
++
  • 打赏
  • 举报
回复
form1:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication5
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
//textBox1.Leave += new EventHandler(textBox1_Leave);


}

private void Form1_Load(object sender, EventArgs e)
{

}

private void button1_Click(object sender, EventArgs e)
{
string a = textBox1.Text;
Form2 frm2 = new Form2(a);
frm2.Show();

}

}
}


form2:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication5
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}

public Form2(string a)//重写构造方法
{
InitializeComponent();
label1.Text = a;
}
}

}

O(∩_∩)O
Daqing 2011-09-06
  • 打赏
  • 举报
回复
//单击Form2中的按钮,显示Form1。然后在form1 textbox中输入字符串,Form2中的textbox相应显示。 这个可以满足你的要求。大致一直如下
public delegate void Callback(string str);
public Class Form1()
{
public event Callback Callevent=null;
private void button1_Click(object sender, EventArgs e)
{
Callevent(textBox1.Text);
}
}

public Class Form2()
{ private void button1_Click(object sender, EventArgs e)
{

Form1 child = new Form1();
chil.Callevent += (send) =>
{
textBox1.Text = send;
}; child.Show();
}
}
try-catch-finally 2011-09-06
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 qzp000000 的回复:]

引用 4 楼 hellousb2010 的回复:

引用 2 楼 aim___ 的回复:

要获取值得话,就要先在 FORM2 中申请 form1 的对象 通过对象访问值 。

form1 f1=new form1()
初始化
这样后那个textbox1里的值就为空了


我没有Form1初始化啊
[/Quote]

那帮忙按你原来 的想法写一下,我可能理解错了
qzp000000 2011-09-06
  • 打赏
  • 举报
回复
Form2写个方法,满足你的想法

public void ShowValue(Form1 frm)
{
this.label1.Text = frm.txt;
}

Form1:这样写

public string txt
{
get
{
return this.textBox1.Text;
}
}
private void button1_Click(object sender, EventArgs e)
{

Form2 frm = new Form2();
frm.ShowValue(this);
frm.Show();
}

qzp000000 2011-09-06
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 hellousb2010 的回复:]

引用 2 楼 aim___ 的回复:

要获取值得话,就要先在 FORM2 中申请 form1 的对象 通过对象访问值 。

form1 f1=new form1()
初始化
这样后那个textbox1里的值就为空了
[/Quote]

我没有Form1初始化啊
changjiangzhibin 2011-09-06
  • 打赏
  • 举报
回复
(一般传值,使用委托会很强大 ,很方便)
说个简单的,在项目里添加一个类,其中放一个public静态变量,如CurName姓名,
这样,Form1中给姓名赋了值,Form2就可以访问到了
try-catch-finally 2011-09-06
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 aim___ 的回复:]

要获取值得话,就要先在 FORM2 中申请 form1 的对象 通过对象访问值 。
[/Quote]
form1 f1=new form1()
初始化
这样后那个textbox1里的值就为空了
qzp000000 2011-09-06
  • 打赏
  • 举报
回复
Form2:写个属性

public string LabelTxt
{
set
{
this.label1.Text = value;
}
}

然后 Form1:
private void button1_Click(object sender, EventArgs e)
{
Form2 frm = new Form2();
frm.LabelTxt = this.textBox1.Text;
frm.Show();

}
愤怒的钉子 2011-09-06
  • 打赏
  • 举报
回复
要获取值得话,就要先在 FORM2 中申请 form1 的对象 通过对象访问值 。
bdmh 2011-09-06
  • 打赏
  • 举报
回复
Lable的modifers设置为public就可以直接form2.Lable了,当然不推荐,你还是好好看看面向对象,用属性传递

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧