windows form (窗体) 之间传值
在windows form之间传值,我总结了有四个方法:全局变量、属性、窗体构造函数和delegate。
第一个全局变量:
这个最简单,只要把变量描述成static就可以了,在form2中直接引用form1的变量,代码如下:
在form1中定义一个static变量public static int i= 9 ;
Form2中的钮扣按钮如下:
private void button1_Click(object sender, System.EventArgs e)
{
textBox1.Text = Form1.i.ToString();
}
第二个方法是利用属性,请详见博客:
http://blog.csdn.net/tjvictor/archive/2006/06/04/772711.aspx
第三个方法是用构造函数:
Form1 的button按钮这样写:
private void button1_Click(object sender, System.EventArgs e)
{
Form2 temp = new Form2( 9 );
temp.Show();
}
Form2 的构造函数这样写:
public Form2( int i )
{
InitializeComponent();
textBox1.Text = i.ToString();
}
第四个方法是用delegate,代码如下:
Form2中先定义一个delegate
public delegate void returnvalue( int i );
public returnvalue ReturnValue;
form2 中的button按钮代码如下:
private void button1_Click(object sender, System.EventArgs e)
{
if ( ReturnValue != null )
ReturnValue( 8 );
}
Form1中的button按键如下:
private void button1_Click(object sender, System.EventArgs e)
{
Form2 temp = new Form2( );
temp.ReturnValue = new temp.Form2.returnvalue( showvalue );
temp.Show();
}
private void showvalue( int i )
{
textBox1.Text = i.ToString();
}
点击form2的button,form1中的textbox中的值就会相应变化。
在这四个方法中,
第一个是双向传值,也就是说,form1和form2改变i的值,另一方也会受到影响。
第二个方法可以单向也可以双向传值。
第三个方法是form1->form2单向传值。
第四个方法是form2->form1单向传值。
以后有新的方法我再补充,还有一个就是用event,和delegate差不多,在这里就不说了。
申明:转帖,来自互联网http://blog.csdn.net/tjvictor/archive/2006/06/23/824617.aspx
转载于:https://www.cnblogs.com/hahacjh/archive/2010/03/09/1682035.html
windows form (窗体) 之间传值相关推荐
- pyqt5窗口之间传递信号_pyQT5 实现窗体之间传值的示例
准备 一个MainWindow和一个WidgetForm,总代码如下 # -*- coding: utf-8 -*- from PyQt5 import QtWidgets from main_win ...
- 窗体之间传值的暴力方法
窗体之间传值可以使用观察者模式,但是如果设置一个static(静态)变量,好像更简单.对于小型程序感觉是可用的: 在前一个窗体上: public static string x: //试验窗体切换的代 ...
- C#使用事件方式Winform窗体之间传值
[摘自:http://www.cnblogs.com/codeToUp/p/5371062.html] 工程的源代码地址:https://github.com/yes-or-no/WinFormTra ...
- WinForm窗体之间传值
当程序需要将一个窗体中的一些信息传给另一个窗体并让其使用时,就需要用到这个知识点 方法一:通过接受参数的窗体的构造函数传值 例:现有Form1和Form2两个窗体,二者都包含一个文本框,Form1还包 ...
- c# 不同窗体之间传值和调用
1.子窗体事件刷新父窗体界面值 子窗体定义委托和事件 //声明一个委托public delegate void DisplayUpdateDelegate(string str);//声明事件publ ...
- c#父窗体子窗体之间传值
c#窗体传值 1. 父窗体向子窗体传值 父窗体Form1程序 //使其成为主窗体Form1的一个属性,private string text;public string Text{get { retu ...
- windows form窗体应用程序,建一个记事本参考代码,重点是打开,保存,另存为...
//当点击打开的时候private string files; //建一个成员变量,用来存储打开的路径private void 打开OToolStripMenuItem_Click(object se ...
- 关于主窗体与子窗体之间的通信以及面向对象思想的一些应用
该写几篇文章啦~ 最近在搞winForm,开始的时候遇到点问题.其实也不算什么大问题,归结起来还是主窗体与子窗体之间传值.通信的问题: 这个问题在网上的解决方案有很多,一搜一大堆,比如将主窗体自身作为 ...
- 让WEB FORM更像WINDOWS FORM: 控制窗体事件
[按] 你可能会误解本文标题:让WEB FORM 更像WINDOWS FORM. 你也许会把本文当作是讨论应用程序界面. 其实本文讨论的是ASP.NET表现层设计. 也许会给你一点启示:如何设计逻辑 ...
最新文章
- 前端也要学系列:设计模式之装饰者模式
- SaltStck 搭建Web集群运用示例 (一)
- 子页面赋值给父页面:window.opener.document.getElementById
- linux-dns的安装
- CVE-2018-1000136:Electron nodeIntegration绕过漏洞
- 微信更新对html影响,微信再次大更新 将极大影响用户使用习惯
- mysql 主键长度_MySQL 数据库,主键为何不宜太长长长长长长长长?
- C#GridViewExport帮助类,美化导出
- ota暗室测试_如何将Darktable用作数字暗室
- 如何创建一个<style> tag with Javascript?
- send anywhere:一个全平台的文件传输神器
- 高通处理器命名中文化
- Super超图,GIS软件
- spring5.0学习笔记1
- RS485转HART协议转换模块 MODBUS转HART转换器
- 有道翻译js逆向解析
- 帝国CMS文章内容超级伪静态 去除栏目id 以自定义英文名称和ID组成
- 【笔记总结】高中英语——其二:名词性从句
- 判断一个double类型的数是不是整数
- iOS开发中常用的方法
热门文章
- 给博客园加一个会动的小人-spig.js
- 文件流下载到本地 - 待完成
- UVA 10341 二分搜索
- 大循环在内,小循环主外为什么会效率高
- matlab ga rbf,GA PSO优化的RBF神经网络
- 字典写入excel_使用Python扫描邮件/填写Excel表格实现办公自动化
- UVA11389巴士司机问题
- hdu4884 模拟
- 【错误记录】编译 Android 版本的 ijkplayer 报错 ( You must define ANDROID_NDK before starting. | 下载指定版本 NDK )
- 【C 语言】二级指针作为输入 ( 二维数组 | 二维数组遍历 | 二维数组排序 )