c# vs2008在一个窗口上点击一个按钮,然后会在另一个窗口的textbox里面显示“已送达”这几个字

有没相关的详细代码。
感激不敬

这个用到了属性传值

如图所示,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();
这两个删除

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-05-12
Form1中的一个Button2的click代码
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;
}
第2个回答  2011-05-12
这两个窗口应该是有联系的吧,假设有按钮的窗口叫窗口1,有textbox的窗口叫窗口2,窗口1是由窗口2弹出的,那么:
在窗口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;
}
第3个回答  2011-05-12
在按钮事件的跳转上给它传个值进去嘛
相似回答
大家正在搜