windows form (窗体) 之间传值小结

 

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差不多,在这里就不说了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();
}
 
第二个方法是利用属性,请详见博客:
 
第三个方法是用构造函数:
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单向传值。
 

windows form (窗体) 之间传值小结的更多相关文章

  1. c# 日常记录,(获取系统时间、return),一些文件隐藏无法引用,c#多个窗体之间传值

    1.获取系统时间 DateTime.Now.ToString(); DateTime dt =DateTime.Now; dt.AddDays(1); //增加一天 dt.AddDays(-1);// ...

  2. 多窗体及窗体之间传值 以及listview的使用

    三中打开窗口窗体状态: 1   messagebox.show 类型  特点: 从窗口form 1里打开另一个窗体form2,form2不关闭的情况下form1 不能操作:代码如下: private ...

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

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

  4. winform窗体 小程序【打开多个窗体、窗体之间传值、打开唯一窗体】

    1.打开多个窗体 2.窗体之间的传值 3打开唯一窗体

  5. 观察者模式的应用:Winform窗体之间传值

    观察者模式的应用:Winform窗体传值 观察者模式的概念: 定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并更新. 今天我们就学着用一下这个观察者模式,先想象 ...

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

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

  7. WinForm窗体之间传值

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

  8. winform两个窗体之间传值(C#委托事件实现)

    委托 定义一个委托,声明一个委托变量,然后让变量去做方法应该做的事. 委托是一个类型 事件是委托变量实现的 经典例子:两个winform窗体传值 定义两个窗体:form1和form2 form1上有一 ...

  9. 第一次知道Winform的窗体之间传值怎么写,分享给小白~

    之前为了这事,百度了一天也没找到,最终使用了静态变量了. 窗体Form1: private void button1_Click(object sender, EventArgs e) { var f ...

随机推荐

  1. NSCondition的用法,NSCondication实现线程同步,生产者消费问题实现(转载)

    NSCondition的用法 使用NSCondition,实现多线程的同步,即,可实现生产者消费者问题. 基本思路是,首先要创建公用的NSCondition实例.然后: 消费者取得锁,取产品,如果没有 ...

  2. chapter1-开始(1)

    C++学习小记 之前“看”过C++,但是纯粹只是为了应付考试.现在想重新学习,久仰<C++ primer>大名,书之厚令我生畏,好记性不如烂笔头,遂以博客形式笔记之. 本人编程菜鸟一枚,当 ...

  3. jquery获取form表单内容以及绑定数据到form表单

    在日常开发的过程中,难免会用到form表单,我们需要获取表单的数据保存到数据库,或者拿到后台的一串json数据,要将数据绑定到form表单上,这里我写了一个基于jquery的,formHelp插件,使 ...

  4. 如何让同一个字段在不同的view中显示不同的内容

    many2one 字段默认显示 对象的name字段, 但也可以定义name_get方法显示不同的内容 如res.partner 对象可以根据 context 内容是否显示 客户的地址,职位,email ...

  5. Python核心编程2第一章课后练习

    1-1 在windows下的安装方法在网上下载python2.7直接安装到C盘1)在系统变量中找到path. 2)编辑path值,添加你安装的python路径,C:\Python27. 3)检验pyt ...

  6. sql的执行顺序

    sql的一般执行顺序(8)SELECT (9)DISTINCT (11)<Top Num> <select list>(1)FROM [left_table](3)<jo ...

  7. Zephyr-MQTT

    Zephyr OS 支持MQTT协议,其源码目录在: # cd /zephyr-/samples/net/paho_mqtt_clients/publisher/ # cd /zephyr-1.5.0 ...

  8. 无线通信技术协议-6LoWPAN

    6LoWPAN:基于IPv6的低速无线个域网标准,即IPv6 over IEEE 802.15.4. 注:6LoWPAN的协议栈实现在Contiki(完整的一套6LoWPAN协议栈).Zephyr(6 ...

  9. 简单的贴图显示shander

    Shader "ztq/Diffuse" {    Properties {           _Color ("Main Color", Color) =  ...

  10. 如何从BBC网站学习英语