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。
需要核心代码! 展开
首先打开窗体A,通过A上的另外一个按钮打开窗体B,窗体A不关闭;
现在在窗体B的listbox2中输入字符串S,点击按钮1,需要窗体A的listbox1中显示出S,如何实现?
不能重新生成窗体A。
需要核心代码! 展开
5个回答
展开全部
做了一个测试 按照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中会自动变化
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中会自动变化
展开全部
用get和set方法不行,除非这个类静态的,你可以选择用定义一个静态类,来传参数,或者用实例窗口传参数的方法。
追问
能帮忙写下核心代码吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在B中写个属性即可 public string s; 写get,set方法
在A中直接 .s 就得到值了
在A中直接 .s 就得到值了
追问
能写详细点儿吗?对get、set不是明白
追答
加我QQ说 350316554
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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;
};
大概如此
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;
};
大概如此
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
对了,用get,set方法最好的啥
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询