在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 (窗体) 之间传值相关推荐

  1. pyqt5窗口之间传递信号_pyQT5 实现窗体之间传值的示例

    准备 一个MainWindow和一个WidgetForm,总代码如下 # -*- coding: utf-8 -*- from PyQt5 import QtWidgets from main_win ...

  2. 窗体之间传值的暴力方法

    窗体之间传值可以使用观察者模式,但是如果设置一个static(静态)变量,好像更简单.对于小型程序感觉是可用的: 在前一个窗体上: public static string x: //试验窗体切换的代 ...

  3. C#使用事件方式Winform窗体之间传值

    [摘自:http://www.cnblogs.com/codeToUp/p/5371062.html] 工程的源代码地址:https://github.com/yes-or-no/WinFormTra ...

  4. WinForm窗体之间传值

    当程序需要将一个窗体中的一些信息传给另一个窗体并让其使用时,就需要用到这个知识点 方法一:通过接受参数的窗体的构造函数传值 例:现有Form1和Form2两个窗体,二者都包含一个文本框,Form1还包 ...

  5. c# 不同窗体之间传值和调用

    1.子窗体事件刷新父窗体界面值 子窗体定义委托和事件 //声明一个委托public delegate void DisplayUpdateDelegate(string str);//声明事件publ ...

  6. c#父窗体子窗体之间传值

    c#窗体传值 1. 父窗体向子窗体传值 父窗体Form1程序 //使其成为主窗体Form1的一个属性,private string text;public string Text{get { retu ...

  7. windows form窗体应用程序,建一个记事本参考代码,重点是打开,保存,另存为...

    //当点击打开的时候private string files; //建一个成员变量,用来存储打开的路径private void 打开OToolStripMenuItem_Click(object se ...

  8. 关于主窗体与子窗体之间的通信以及面向对象思想的一些应用

    该写几篇文章啦~ 最近在搞winForm,开始的时候遇到点问题.其实也不算什么大问题,归结起来还是主窗体与子窗体之间传值.通信的问题: 这个问题在网上的解决方案有很多,一搜一大堆,比如将主窗体自身作为 ...

  9. 让WEB FORM更像WINDOWS FORM: 控制窗体事件

    [按] 你可能会误解本文标题:让WEB FORM 更像WINDOWS FORM. 你也许会把本文当作是讨论应用程序界面. 其实本文讨论的是ASP.NET表现层设计.  也许会给你一点启示:如何设计逻辑 ...

最新文章

  1. 前端也要学系列:设计模式之装饰者模式
  2. SaltStck 搭建Web集群运用示例 (一)
  3. 子页面赋值给父页面:window.opener.document.getElementById
  4. linux-dns的安装
  5. CVE-2018-1000136:Electron nodeIntegration绕过漏洞
  6. 微信更新对html影响,微信再次大更新 将极大影响用户使用习惯
  7. mysql 主键长度_MySQL 数据库,主键为何不宜太长长长长长长长长?
  8. C#GridViewExport帮助类,美化导出
  9. ota暗室测试_如何将Darktable用作数字暗室
  10. 如何创建一个<style> tag with Javascript?
  11. send anywhere:一个全平台的文件传输神器
  12. 高通处理器命名中文化
  13. Super超图,GIS软件
  14. spring5.0学习笔记1
  15. RS485转HART协议转换模块 MODBUS转HART转换器
  16. 有道翻译js逆向解析
  17. 帝国CMS文章内容超级伪静态 去除栏目id 以自定义英文名称和ID组成
  18. 【笔记总结】高中英语——其二:名词性从句
  19. 判断一个double类型的数是不是整数
  20. iOS开发中常用的方法

热门文章

  1. 给博客园加一个会动的小人-spig.js
  2. 文件流下载到本地 - 待完成
  3. UVA 10341 二分搜索
  4. 大循环在内,小循环主外为什么会效率高
  5. matlab ga rbf,GA PSO优化的RBF神经网络
  6. 字典写入excel_使用Python扫描邮件/填写Excel表格实现办公自动化
  7. UVA11389巴士司机问题
  8. hdu4884 模拟
  9. 【错误记录】编译 Android 版本的 ijkplayer 报错 ( You must define ANDROID_NDK before starting. | 下载指定版本 NDK )
  10. 【C 语言】二级指针作为输入 ( 二维数组 | 二维数组遍历 | 二维数组排序 )