注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

SINOBANJO

IN GOD WE TRUST ! ~ ClueeZhuo

 
 
 
 
 

日志

 
 

c# winform 窗体间的传值  

2012-05-21 18:10:04|  分类: 班卓C# |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

写winform程序时有时可能需要窗体之间相互传值。c winform 窗体间的传值 - 班卓 - BanjoElena—班卓埃琳娜国际

 


其实winform程序的每个 窗体都是一个类,在这里我门可以利用这个进行窗体间的值传递。


(1)在主窗体中获取子窗体中的数据


在这里 假设有两个窗体 main 和child 两个窗体上分别有一个 textbox和 button按钮。当点击主窗体的按钮时将子窗体显示出来,代码如下:




        private void button1_Click(object sender, EventArgs e)

        {

            child c = new child();

            c.Show();


            

        }



 


接下来我们将在子窗体关闭后获取 子窗体textbox中的值。


如何获取呢?很简单。在子窗体也就是child类中定义一个属性让他返回子窗体上的textbox文本框


代码如下:




    public partial class child : Form

    {

        public child()

        {

            InitializeComponent();

        }


        //这是在子窗体中定义的属性。用来获取子窗体中的textbox。

        public TextBox getchildtextbos

        {

            get {

                return textBox1;

            }

        }

    }



 


为什么要定义这个属性呢。因为。你在子窗体中放的每一个控件都是一个私有字段。


具体看child.designer.cs这个文件




私有字段是无法在其他类中访问的。所以这里要定义属性 来读取这个字段。然后返回给调用者。相当于一个间谍


接下来我们就可以在主窗体中显示子窗体的代码处读取在窗体中的textbox1的值了代码如下:




        private void button1_Click(object sender, EventArgs e)

        {

            child c = new child();

            c.Show();

            //当子窗体关闭的时候获取子窗体中的textbox1的值,还记得getchildtextbos吗这就是我们的间谍。也就是我们在child类中定义的属性。

            string childtext = c.getchildtextbos.Text;

            

        }



 


 (2)在子窗体中获取主窗体中的数据


 首先在子窗体child中定义一个 主窗体main类型的属性:




    public partial class child : Form

    {

        public child()

        {

            InitializeComponent();

        }


        //这是在子窗体中定义的属性。用来获取子窗体中的textbox。

        public TextBox getchildtextbos

        {

            get {

                return textBox1;

            }

        }


        private void child_Load(object sender, EventArgs e)

        {


        }

        //这是我们定义的main类型属性

        public main getmain

        {

            get;

            set;

        }

    }



接下来是重要的一步,当我们在主窗体中点击按钮显示child窗体的时候调用getmain这个属性赋值。也就是把主窗体这个对象赋给他。代码如下:




        private void button1_Click(object sender, EventArgs e)

        {

            child c = new child();

            //把主窗体赋值给child类的getmain属性

            c.getmain = this;

            c.Show();

            //当子窗体关闭的时候获取子窗体中的textbox1的值,还记得getchildtextbos吗这就是我们的间谍。也就是我们在child类中定义的属性。

            string childtext = c.getchildtextbos.Text;

            

        }



这样我们就可以在子窗体中通过getmain这个属性读取主窗体中的数据了。


总结一下:


winform窗体传值


主窗体获取子窗体的数据

给 窗体的类 添加属性...然后读取。

第二个窗体 操作第一个窗体

首相在 第二个窗体类中声明一个第一个窗体类型属性

然后在第一个窗体显示第二个窗体时 将第一个窗体对象赋值给 第二个窗体 刚才声明的属性;

  评论这张
 
阅读(142)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017