首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

窗体间怎么跳转并返回

2013-04-21 
窗体间如何跳转并返回?winform窗体程序,现有2个窗体分别为A, BA窗体有一个按钮和textbox框当点击按钮,则带

窗体间如何跳转并返回?
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)
            {
                EventInfo et = new EventInfo();


                et.str1 = this.textBox1.Text;
                et.str2 = this.textBox2.Text;
                UpdateFormData(null, et);
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            if (UpdateFormData != null)
            {
                EventInfo et = new EventInfo();
                et.str1 = this.textBox3.Text;
                et.str2 = this.textBox4.Text;
                UpdateFormData(null, et);
            }
        }
    }
}
public class EventInfo : EventArgs
{
    public string str1 { get; set; }
    public string str2 { get; set; }
}


[解决办法]
窗体间怎么跳转并返回
引用:
1L的代码是可行的。我在给你贴一种通过事件的方式来实现的代码。


C# code
?



1234567891011121314

private void button1_Click(object sender, EventArgs e)         {             //Process.Start(appName, "ve");             F……

热点排行