C#窗体间的传值?

「已注销」 2010-12-24 09:49:28
C#窗体间的传值?
...全文
273 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
yg410560628 2010-12-26
  • 打赏
  • 举报
回复
楼上都说完了
机器再学习 2010-12-26
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 paddypy 的回复:]
可以用构造函数或是通过属性
例如
class TestForm {
public AgrInfo AgrInfoAdded { get; set; }
}

var testForm = new TestForm();
testForm.AgrInfoAdded = new AgrInfo();
[/Quote]
支持下楼上的。
paddypy 2010-12-26
  • 打赏
  • 举报
回复
可以用构造函数或是通过属性
例如
class TestForm {
public AgrInfo AgrInfoAdded { get; set; }
}

var testForm = new TestForm();
testForm.AgrInfoAdded = new AgrInfo();
linjianwei 2010-12-26
  • 打赏
  • 举报
回复
可以自定义消息,发送方发送消息(带数据),接收方响应消息进行处理
IvyAngta 2010-12-26
  • 打赏
  • 举报
回复
在项目中建立一个公共类文件,设置一个值来传递 在两个窗体中需要传递的值。比如是在公共类PUBLICCLS.CS,设置一个public static string strval="";窗体1中给它赋值,在窗体2中再使用 就可以了!
ggw128 2010-12-26
  • 打赏
  • 举报
回复
楼上诸位都正解!
huhil2003 2010-12-26
  • 打赏
  • 举报
回复
楼主要是在两个窗口间互相传递数据的话,感觉还是设置一个静态变量的好些,修改构造函数只能实现一个窗口向另一个传递吧,另一个不能传递回原窗口。要是担心静态变量传的内容不合规范,就给它编一个属性调用。
西门喷血 2010-12-26
  • 打赏
  • 举报
回复
把当前窗体当做参数传过去 第二个窗体NEW一下就可以取到值了
darlling 2010-12-26
  • 打赏
  • 举报
回复
楼上已解决
mayuliuze 2010-12-26
  • 打赏
  • 举报
回复
en,我刚用过,很简单
李亚超 2010-12-26
  • 打赏
  • 举报
回复
总结:窗体间传值,可以认为是不同类之间的传值。
王杨 2010-12-25
  • 打赏
  • 举报
回复
namespace WindowsFormsApplication1
{
public class app
{
public static string k;
}
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2();
f2.ShowDialog(this);
f2.Dispose();
textBox1.Text = app.k;
}

}
}



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

private void button1_Click(object sender, EventArgs e)
{
app.k = textBox1.Text;
this.Close();
}
}
wangsong145 2010-12-25
  • 打赏
  • 举报
回复
窗体form1向窗体form2传值的三种方式:
1、采用构造函数:

public Form2(string ss)
{
this.m_ss = ss;
}

Form2 frm = new Form2("123");

2、采用form2的全局变量:


public string public_ss = "";

public Form2()
{
InitializeComponent();
}

//form1
Form2 frm = new Form2();
frm.public_ss = "123";

3、采用属性

private string m_ss = "";
public Form2(string ss)
{
this.m_ss = ss;
}

public string SS
{
get { return this.m_ss; }
set { this.m_ss = value; }
}

//form1
Form2 frm = new Form2();
frm.SS = "123";

xushuai8967 2010-12-25
  • 打赏
  • 举报
回复
重新写构造函数
第一个窗口
Form2 fm2 = new Form2(this.textBox.Text);
fm2.ShowDialog();
第二个窗口的构造函数
String str;
public Form2(String str)
{
this.str = str;
InitializeComponent();
}
显示到TEXTBOX
this.textBox2.Text = str;
LovePurple 2010-12-25
  • 打赏
  • 举报
回复
可以 定义成静态变量,在为个项目的所有窗体里就可以用窗体名 进行调用
闲着吃菜 2010-12-25
  • 打赏
  • 举报
回复
楼主CSDN 这个问题有人问过了http://blog.csdn.net/zhzuo/archive/2006/05/05/708941.aspx#sec5
你在GOOGLE 一下可以得到好多好的答案的
yanele 2010-12-25
  • 打赏
  • 举报
回复
好像用委托的人比较多!
a78782295 2010-12-25
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 wangsong145 的回复:]
窗体form1向窗体form2传值的三种方式:
1、采用构造函数:

C# code

public Form2(string ss)
{
this.m_ss = ss;
}

Form2 frm = new Form2("123");


2、采用form2的全局变量:

C# code


p……
[/Quote]

顶! 呵呵
zj514394212 2010-12-25
  • 打赏
  • 举报
回复
这个你在窗体实例里设置个变量,让或通过封装变量进行访问变量,安全点,如果怕变量丢失,就干脆弄个public static class 将变量全部扔里面
ZingofAres 2010-12-25
  • 打赏
  • 举报
回复
很好,学习了
加载更多回复(8)

110,571

社区成员

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

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

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