这个用到了属性传值
如图所示,form1为第一个窗体,下面的一个为设计窗体,一个运行后的结果图
代码如下,from1:
只要写一个按钮的单击事件就行了
private void button1_Click(object sender, EventArgs e)
{
Form2 frm = new Form2();
frm.Transfer = "已送达";
this.Hide();
frm.ShowDialog();
}
form2:在窗体的Load事件中写的,但要加一个属性,代码为:
private string transfer;
public string Transfer
{
get
{
return this.transfer;
}
set
{
this.transfer = value;
}
}
private void Form2_Load(object sender, EventArgs e)
{
this.textBox1.Text = this.Transfer;
}
这样就可以完成你要的功能了,希望对你有帮助
在传递完信息后,我想不直接跳到那个窗口,应该加什么代码
谢谢了
将 this.Hide();
frm.ShowDialog();
这两个删除
private void button2_Click(object sender, EventArgs e)
{
Form2 fm = new Form2();
if (fm.ShowDialog() == DialogResult.OK)
textBox1.Text = "已发送";
}
Form2中一个Button1的click代码
private void button1_Click(object sender, EventArgs e)
{
DialogResult = DialogResult.OK;
}
在窗口1中:
//定义委托
public delegate void SendMessage(string str);
private SendMessage _sm;
public SendMessage OnSendMessage
{
set
{
_sm = value;
}
}
//点击按钮时,调用此委托
private void button1_Click(object sender, EventArgs e)
{
if (_sm != null)//委托不为空,则调用
{
_sm("已送达");
}
}
窗口2中:
//打开窗口1时,给窗口1的委托赋值回调方法
Form2 f2 = new Form2();
f2.OnSendMessage = ShowMessage;
f2.Show();
//回调方法ShowMessage的定义
private void ShowMessage(string str)
{
this.txtMessage.Text = str;
}