• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > WinForm窗体间传值的方法

WinForm窗体间传值的方法

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了winform窗体间传值,winform窗体传值,winform 跨窗体传值,c#winform窗体美化,winform窗体固定大小等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本文实例讲述了WinForm窗体间传值的方法。分享给大家供大家参考。具体实现方法如下:

窗体间传递数据,无论是父窗体操作子窗体,还是子窗体操作符窗体,有以下几种方式:
 
1.公共静态变量;
2.使用共有属性;
3.使用委托与事件;
4.通过构造函数把主窗体传递到从窗体中;

一、通过静态变量

特点:传值是双向的,实现简单
 
实现代码如下:
在一个app类中定义一个静态成员value
{
public static string value;
}</div>
在窗体Form1中这样调用
new Form2 ( ).Show ( ); //显示Form2</div>
在窗体Form2中
app.value = "Form2"; //给app.value赋值,以便其他窗体调用</div>
 
二、公共变量传值

这种方法就是利用一个公共变量,先把需要的值存放到这个公共变量,然后需要的时候再通过读取该变量的值来使用
例子
Form1:
private void button1_Click(object sender, EventArgs e)
{
Form1Value = "来自Form1";
new Form2().Show();
}</div>
Form2:
{
MessageBox.Show(Form1.Form1Value);
}</div>
这种方式传值,理解和使用上都相对的简单,但是容易让变量串值,比如第一次修改为“a”,而第二次修改为“b”,则有可能本来需要“a”值的结果变成了“b”。
 
三、静态方法方式访问

这种方法与传值方法的第一种有些类似,就是将需要被其他窗体访问的方法用static定义,以便其他传递可以直接访问到
例子:
Form1:
{
new Form2().Show();
}
public static void FF()
{
MessageBox.Show("Form1方法");
}</div>
Form2:
{
Form1.FF();
}</div>
使用这种方法访问其他窗体的方法,在跨窗体上实现方便,但是需要需要访问到控件值则不能直接访问,需要将值先传递给其他窗体,再有窗体传递回来,或者存储在其他变量后对这变量进行访问。
 
四、通过窗体的公有属性值

特点:实现简单
 
实现代码如下:
在窗体Form2中定义一个公有属性Form2Value,获取和设置textBox1的文本值
{
get
{
return this.textBox1.Text;
}
set
{
this.textBox1.Text = value;
}
}</div>
在窗体Form1中这样调用
f2.Form2Value = "Ok"; //给Form2的textBox1赋值Ok
f2.ShowDialog ( );</div>
 
五、通过窗体的公有属性值和Owner属性

特点:实现简单,灵活
 
实现代码如下:
在窗体Form1中
Form2 f2 = new Form2 ( );
f2.ShowDialog ( this ); //把Form1作为Form2的所有者传递给Form2</div>
在窗体Form2中
Form1 f1 = ( Form1 ) this.Owner;
//取到Form1的值是1
MessageBox.Show ( f1.Form1Value .ToString ( ) );
//给Form1的Form1Value赋值222
f1.Form1Value = 222;</div>
 
六、通过窗体的公有属性值和Application.OpenForms属性

说明:Application.OpenForms属性:获取属于应用程序的打开窗体的集合。(此属性在 .NET Framework2.0版中)
 
实现代码如下:
在窗体Form1中
Form2 f2 = new Form2 ( );
f2.Show ( );</div>
在窗体Form2中
Form fr = Application.OpenForms [ formName ];
if ( fr != null )
{
Form1 f1 = ( Form1 ) fr;
//取到Form1的值是1
MessageBox.Show ( f1.Form1Value.ToString ( ) );
//给Form1的Form1Value赋值222
f1.Form1Value = 222;
}</div>
 
七、传参式传值

此方法顾名思义就是将需要的值一参数形式传递给需要值的窗体
例子:
Form1:
{
new Form2("来自Form1").Show();
}</div>
Form2:
{
InitializeComponent();
MessageBox.Show(vaue);
}</div>
此种窗体间传值方法明显优与第一种的传值参数,也不会出现串数据现象,但是需要注意修改Form2的构造函数,每个窗体的默认构造函数默认都是无参数的,因此需要去修改构造函数。
 
八、通过构造函数

特点:传值是单向的(不可以互相传值),实现简单

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Winform窗体圆角设计代码
  • Winform实现鼠标可穿透的窗体镂空效果
  • WinForm单例窗体用法实例
  • WinForm遍历窗体所有子控件的方法
  • winform实现拖动文件到窗体上的方法
  • winform创建不规则窗体的方法
  • Winform窗体效果实例分析
  • WinForm实现窗体最大化并遮盖任务栏的方法
  • winform实现创建最前端窗体的方法
  • WinForm限制窗体不能移到屏幕外的方法

相关文章

  • 2017-05-28C#命令行编译器配置方法
  • 2017-05-28C#实现为类和函数代码自动添加版权注释信息的方法
  • 2017-05-28WPF MVVM制作发送短信小按钮
  • 2017-05-28C#学习基础概念二十五问续2第1/2页
  • 2017-05-28C#(asp.net)多线程用法示例(可用于同时处理多个任务)
  • 2017-05-28C#遍历文件夹及子目录下所有图片
  • 2017-05-28C#判断一个String是否为数字类型
  • 2017-05-28npoi2.0将datatable对象转换为excel2007示例
  • 2017-05-28C#中正则表达式的3种匹配模式
  • 2017-05-28C#编程获取实体类属性名和值的方法示例

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 详谈C# 图片与byte[]之间以及byte[]与string之间的转换
    • C#使用MailAddress类发送html格式邮件的实例代码
    • C#匹配中文字符串的4种正则表达式分享
    • asp.net(C#)清除全部Session与单个Session的方法
    • 详解c# 类的构造方法
    • 在Framework 4.0中:找出新增的方法与新增的类(二)
    • C# DataTable中Compute方法用法集锦(数值/字符串/运算符/表等操作)
    • C#反序列化到类的实现方法
    • C#保存图片到数据库并读取显示图片的方法
    • C#编程实现四舍五入、向上及下取整的方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有