c#中如何在两个窗体间传递数据?

窗体A、B,A中有listbox1,B中有listbox2和按钮1。首先打开窗体A,通过A上的另外一个按钮打开窗体B,窗体A不关闭;现在在窗体B的listbox2中输入字... 窗体A、B,A中有listbox1,B中有listbox2和按钮1。
首先打开窗体A,通过A上的另外一个按钮打开窗体B,窗体A不关闭;
现在在窗体B的listbox2中输入字符串S,点击按钮1,需要窗体A的listbox1中显示出S,如何实现?
不能重新生成窗体A。
需要核心代码!
展开
 我来答
jjlsky
2011-06-04 · TA获得超过283个赞
知道小有建树答主
回答量:229
采纳率:0%
帮助的人:229万
展开全部
做了一个测试 按照vwenye 回复的
Form1 中 打开Form2中此处用 TextBox
Form1中打开 Form2按扭代码为:
private void button3_Click(object sender, EventArgs e)
{
Form2 f = new Form2();

f.MessageSent += delegate(object caller, string msg)
{
this.textBox1.Text = msg;
};
f.ShowDialog();
}
Form2中代码为:
public delegate void SendMessage(object sender, string message);
public event SendMessage MessageSent;

public Form2()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
if (this.MessageSent != null)
MessageSent(this, textBox1.Text);
}

这样在Form2中修改TExtBox 值点击按钮则Form1中会自动变化
沁瑰砾香
2011-06-04 · TA获得超过112个赞
知道小有建树答主
回答量:100
采纳率:0%
帮助的人:44.1万
展开全部
用get和set方法不行,除非这个类静态的,你可以选择用定义一个静态类,来传参数,或者用实例窗口传参数的方法。
追问
能帮忙写下核心代码吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
声鸾U1
2011-06-04 · TA获得超过651个赞
知道小有建树答主
回答量:1195
采纳率:33%
帮助的人:511万
展开全部
在B中写个属性即可 public string s; 写get,set方法
在A中直接 .s 就得到值了
追问
能写详细点儿吗?对get、set不是明白
追答
加我QQ说 350316554
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
vwenye
2011-06-04 · TA获得超过4984个赞
知道大有可为答主
回答量:1510
采纳率:0%
帮助的人:835万
展开全部
B里定义
public delegate void SendMessage(object sender, string message);

然后增加事件 public event SendMessage MessageSent;
然后给按钮一加Onclick事件
里面加上
if (this.MessageSent != null)
MessageSent(this, this.listbox2.Text);

A里面
创建B的时候
Form2 form1 = new Form2("Form 1");
form1.MessageSent +=
delegate(object caller, string msg){
this.listbox1.Text = msg;
};

大概如此
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
喻元恺Va
2011-06-04 · TA获得超过905个赞
知道小有建树答主
回答量:4465
采纳率:0%
帮助的人:1828万
展开全部
对了,用get,set方法最好的啥
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式