窗体间如何跳转并返回?
winform窗体程序,现有2个窗体分别为A, B
A窗体有一个按钮和textbox框
当点击按钮,则带着部分信息跳转到B窗体(这一步我会)
然后在B窗体里进行一些简单操作(比如获取一个值)
要求将这个获取的值在A窗体的textbox框里显示出来
请问 重新返回到A窗体并显示值的这个操作该怎么处理??我要求不能重新打开A窗体(因为我之前就没关闭A窗体),只是textbox能显示值就行
------解决方案--------------------在B窗体定义一个属性,比窗体点“确定”按钮时,给这个属性赋值,然后A窗体取B窗体这个属性值给A窗体的TextBox
大致代码如下:
B窗体:
public string BValue{get;set;}
private void btnOK_Click(sender object,EventArgs e)
{
BValue="要赋给A的TextBox值";
this.DialogResult=DialogResult.OK; //表示确定动作
this.Close();
}
A窗体:
using(FormB frm=new FormB())
{
//此处把A的信息给B(你会我就不写了)
if(frm.ShowDialog()==DialogResult.OK) //表示B确定动作
{
textbox1.Text=frm.BValue; //将B的值给A的textbox
}
}
------解决方案--------------------这个问题不赘述了
直接上篇文章《winform窗体间传值 》看了楼主就明白了
http://www.cnblogs.com/tomin/archive/2009/02/25/1397677.html
------解决方案--------------------属性是一种解决办法,通过事件也可以
------解决方案--------------------把A作为Form参数传递给B,在B里面操作即可!
------解决方案--------------------1L的代码是可行的。我在给你贴一种通过事件的方式来实现的代码。
private void button1_Click(object sender, EventArgs e)
{
//Process.Start(appName, "ve");
Form8 frm = new Form8();
frm.UpdateFormData += new EventHandler<EventInfo>(frm_UpdateFormData);
frm.ShowDialog();
}
void frm_UpdateFormData(object sender, EventInfo e)
{
this.textBox1.Text = e.str1;
this.textBox2.Text = e.str2;
}
namespace ApiDemo
{
public partial class Form8 : Form
{
public event EventHandler<EventInfo> UpdateFormData;
public string testValue { get; set; }
public Form8()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
if (UpdateFormData != null)
{
EventI