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. MVC5+EF6 入门完整教程一

    第0课 从0开始 ASP.NET MVC开发模式和传统的WebForm开发模式相比,增加了很多"约定". 直接讲这些 "约定" 会让人困惑,而且东西太多容易忘记 ...

  2. WampServer修改端口及菜单Localhost

    一.修改Apache端口 1.在界面中选Apache,弹出隐藏菜单选项,打开配置文件httpd.conf: 2.找到 Listen 80: 3.将 80 改成 8080(当然自己也可以设定别的不使用的 ...

  3. 使用BeanUtils组件

    使用BeanUtils组件 前提 1:导入commons-beanutils-1.8.3.jar        //根据  本人使用的是1.8.3的版本 2:导入日志包      //就是loggin ...

  4. [转]jQuery,javascript获得网页的高度和宽度

    网页可见区域宽: document.body.clientWidth网页可见区域高: document.body.clientHeight网页可见区域宽: document.body.offsetWi ...

  5. 理解CSS Clip属性及用法

    应用Clip属性实现的一个简单效果图: 样式写法: .my-element { position: absolute; clip: rect(10px  350px  170px  0); /* IE ...

  6. Python自动化运维之24、JQuery

    jQuery是一个兼容多浏览器的javascript库,核心理念是write less,do more(写得更少,做得更多).它是轻量级的js库 ,它兼容CSS3,还兼容各种浏览器(IE 6.0+, ...

  7. oe 仓库管理

    需求情景: 销售电商, 其中有些产品 为代理销售(公司不管理库存,建立SO后直接由对应的供应商发货即可) 解决方案: SO 生成 DO 时候 , 源库存的取得逻辑        SO-->SHO ...

  8. App适配iPhone 6/ Plus和iOS 8:10条小秘诀

    App适配iPhone 6/ Plus和iOS 8:10条小秘诀   iPhone 6iOS 8适配   (原文:raywenderlich 作者:Jack Wu 译者:@TurtleFromMars ...

  9. iscc2016-basic-心灵鸡汤

    用winhex打开发现 ISCCCongratulations! You need remember: DEath IS JUST A PaRT oF lIFE,sOMeTHInG wE'RE aLL ...

  10. python中对文件、文件夹的操作需要涉及到os模块和shutil模块。

    创建文件:1) os.mknod("test.txt") 创建空文件2) open("test.txt",w) 直接打开一个文件,如果文件不存在则创建文件 创建 ...