winform窗体间传值

窗体间传值要弄清楚到底是哪个对象的问题,否则容易传错值。就比如窗体对象loginFrm为登陆窗体,想把当前的登陆用户信息传递给主窗体mainFrm,但是却实例了一个新的对象loginFrm把里头的信息传递给了mainFrm,所以得到了一空值,颇有刻舟求剑的味道,不同的内存空间就比如湖水的宽广一样,存放着不同的对象,彼此要分清楚。窗体传值的前提是,要传的字段,在类里面的访问修饰符必须是public(如果在源窗体内传值则例外,参见下列常用方法2)。
常用的方法:
1.    静态变量,在窗体里Class
Form1中,写入一个静态变量A,可以给其赋值,那么在这个项目中,就可以通过Form1.A来调用。不推荐此种方法,不太安全。
2.    比较稳妥的方法,就是在传值的过程中,首先在被传值窗体form2中,建立一个公有属性B,做为接收者。在form1里实例form2时,把需要传递的值A赋给新实例form2.B,或者是通过Form2类的构造函数传递,方法很多,此种传值较为安全(推荐)。
3.    若是要得到一组固定的数据,那么可以写成一个公有的带返回值的方法,在源窗体中。然后在目标窗体中实例源窗体对象,调用此方法获得数据,此方法虽不同于静态变量,但有异曲同工之妙,可以不必强调对象。其缺点是,方法体内传递数据为固定的,不能变通。

时间: 2024-12-30 09:11:33

winform窗体间传值的相关文章

求助:Winform窗体间传值 实践。拜谢老师大侠!!!

问题描述 求助:Winform窗体间传值实践.拜谢老师大侠!!!关于Winform窗体传值,读到happy09li的<C#窗体间传值方法大汇总>(http://bbs.csdn.net/topics/390128592),作为新手,想按照这个"大汇总",逐一实践一下这些传值方法,以更好理解代码.求论坛上的老师大侠辅助俺的实践,学生不胜感激!!!作揖!!!俺的举例代码:评分系统,运行过程是这样的:运行→出现listView的Emp窗体→双击其中的一行→跳转到"评分&

C# Winform窗体间传值

1.通过构造函数 特点:传值是单向的(不可以互相传值),实现简单 实现代码如下: 在窗体Form2中 int value1; string value2; public Form2 ( int value1 , string value2 ) {     InitializeComponent ( );     this.value1 = value1;     this.value2 = value2; } 在窗体Form1中这样调用 new Form2 ( 111 , "222"

ASP.NET 窗体间传值的方法

这篇文章介绍了ASP.NET 窗体间传值的方法,有需要的朋友可以参考一下,希望对你有所帮助   假设ParentForm.aspx 页面上有TextBox1文本框和Open按钮 点击Open按钮弹出SubForm.aspx,SubForm.aspx页面上有TextBox1文本框和Close按钮 点击Close按钮关闭SubForm.aspx页面,并把子页面SubForm.aspx文本框的值显示到父页面ParentForm.aspx 的文本框上. 父窗体前台代码: 复制代码 代码如下:      

窗体间传值出问题

问题描述 有没有人碰到过这种情况,,窗体间单项数组值传递,明明已经显示接受到数据,,但是在timer中应用时候,,却发现是Null,这是咋回事比如,在一个窗体里,publicpartialclassMainInterfaceForm:Form{privatestringAuth;publicstring[]OPCreader;publicMainInterfaceForm(stringAuthority,string[]MfaceOPCread)if(MfaceOPCread!=null){OP

WinForm窗体显示和窗体间传值总结

WinForm 2009-02-10 10:47:47 阅读50 评论0 字号:大中小 A.WinForm中窗体显示 显示窗体可以有以下2种方法: Form.ShowDialog方法 (窗体显示为模式窗体) Form.Show方法 (窗体显示为无模式窗体) 两者具体区别如下: 1.在调用Form.Show方法后,Show方法后面的代码会立即执行 2.在调用Form.ShowDialog方法后,直到关闭对话框后,才执行此方法后面的代码 3.当窗体显示为模式窗体时,单击"关闭"按钮会隐藏窗

ASP.NET 窗体间传值实现方法

 假设ParentForm.aspx 页面上有TextBox1文本框和Open按钮 点击Open按钮弹出SubForm.aspx,SubForm.aspx页面上有TextBox1文本框和Close按钮 点击Close按钮关闭SubForm.aspx页面,并把子页面SubForm.aspx文本框的值显示到父页面ParentForm.aspx 的文本框上. 父窗体前台代码:    代码如下         <script type="text/javascript">     

ASP.NET 窗体间传值实现方法详解

假设ParentForm.aspx 页面上有TextBox1文本框和Open按钮 点击Open按钮弹出SubForm.aspx,SubForm.aspx页面上有TextBox1文本框和Close按钮 点击Close按钮关闭SubForm.aspx页面,并把子页面SubForm.aspx文本框的值显示到父页面ParentForm.aspx 的文本框上. 父窗体前台代码:    代码如下 复制代码       <script type="text/javascript">   

C#局域网聊天工具制作系列讲座(3)_窗体间传值

问题描述 启动主程序时,同时启动UDP的监听,这时应该使用集合来做为消息队列的缓存,以便用户能在任何时候浏览到消息.这个集合一般在主程序中定义,而用户接受消息,一般我们会弹出窗口给用户来浏览消息,以及在新窗口中回复消息,那如何将主窗口中的消息,传递到消息显示窗体中呢?如何是Web(ASP.net)我们可以封装到form中传值,或者request传值,甚至可以在URL中接参数直接传值,而winform中窗体传值以上方法就都不在能用了.在windowsform之间传值,我总结了有四个方法:全局变量.

c# 窗体间传值-为什么窗体中公开的属性,别的窗体不能调用??

问题描述 为什么窗体中公开的属性,别的窗体不能调用?? 以下是部分代码: private void tslSearch_Click(object sender, EventArgs e) { Form f = new Search(tn); f.Infos-- } 调用的窗体作用是设置搜索条件并返回搜索结果,部分代码如下: public partial class Search : Form { private TableName tn = TableName.企业信息; private str