`
hzy3774
  • 浏览: 984870 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
社区版块
存档分类
最新评论

C#使用Event在窗体之间传递消息和参数

 
阅读更多

有时候需要在两个窗体之间传递事件或者参数,例如一个登陆窗体,要将用户名和密码传递给主窗体,使用Event不但可以使主窗体在登录窗体关闭后再显示出来,还可以将数据传递到主窗体,代码很简单,要注意的是要判断事件是否为空,不然会出现空指向异常:

FormLogin代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace Login
{
    public delegate void myDele(string id, string pwd);//声明代理

    public partial class FormLogin : Form
    {
        public event myDele myEvent;//声明事件
 
        public FormLogin()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)//按钮事件
        {
           if (myEvent != null)//一定要判断事件是否为空,否则会出现空指向异常
           {
               myEvent(textBox1.Text, textBox2.Text);//触发事件
           }
           Close();
        }
    }
}

 

Form1代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace Login
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            FormLogin flogin = new FormLogin();
            flogin.myEvent += new myDele(flogin_myEvent);//添加事件
            flogin.ShowDialog(this);//显示窗口
        }

        void foglin_myEvent(string id, string pwd)//事件处理函数
        {
            label1.Text = id;
            label2.Text = pwd;
        }
    }
}

 
Login窗体

主窗体:



 
 程序执行流程是:实例化主窗体时,先将Login窗体以对话框方式显示出来;在Button1按钮事件中,因为Form1中为FormLogin窗体的MyEvent添加了事件foglin_myEvent,因此在Login中执行myEvent时会调用foglin_myEvent,

并把id和pwd作为参数,这时就可以在foglin_myEvent函数中接受这些从Login窗体中来的参数了。

  • 大小: 8.1 KB
  • 大小: 10.6 KB
  • 大小: 10.6 KB
分享到:
评论
1 楼 asdf_2012 2017-04-24  
兄弟简单明了。
顶你

相关推荐

    CLR.via.C#.(中文第3版)(自制详细书签)Part2

    9.5 参数和返回类型的指导原则 9.6 常量性 第10章 属性 10.1 无参属性 10.1.1 自动实现的属性 10.1.2 合理定义属性 10.1.3 对象和集合初始化器 10.1.4 匿名类型 10.1.5 System.Tuple类型 10.2 有参属性 ...

    C#开发实例大全(基础卷).软件开发技术联盟(带详细书签) PDF 下载

    全书分6篇共25章,主要内容有C#开发环境的使用、C#语言基础应用、字符串处理技术、数组和集合的使用、面向对象编程技术、数据结构与算法、Windows窗体基础、特色窗体界面、窗体控制技术、MDI窗体和继承窗体、Windows...

    C# for CSDN 乱七八糟的看不懂

    C#关键字 关键字 abstract as base bool break byte case catch char checked class const continue decimal default delegate do double else enum event explicit extern false finally fixed float for foreach ...

    CLR.via.C#.(中文第3版)(自制详细书签)

    9.5 参数和返回类型的指导原则 9.6 常量性 第10章 属性 10.1 无参属性 10.1.1 自动实现的属性 10.1.2 合理定义属性 10.1.3 对象和集合初始化器 10.1.4 匿名类型 10.1.5 System.Tuple类型 10.2 有参属性 ...

    CLR.via.C#.(中文第3版)(自制详细书签)Part1

    9.5 参数和返回类型的指导原则 9.6 常量性 第10章 属性 10.1 无参属性 10.1.1 自动实现的属性 10.1.2 合理定义属性 10.1.3 对象和集合初始化器 10.1.4 匿名类型 10.1.5 System.Tuple类型 10.2 有参属性 ...

    CLR.via.C#.(中文第3版)(自制详细书签)Part3

    9.5 参数和返回类型的指导原则 9.6 常量性 第10章 属性 10.1 无参属性 10.1.1 自动实现的属性 10.1.2 合理定义属性 10.1.3 对象和集合初始化器 10.1.4 匿名类型 10.1.5 System.Tuple类型 10.2 有参属性 ...

    Form1调用Form2 ,From2回传值或调用Form1内的方法。

    通过委托实现,初学C#的可参考,借以理解event、EventHandler等; 高级人士勿笑

    net学习笔记及其他代码应用

    1. 简述 private、 protected...因此传递给 switch 和 case 语句的参数应该是 int、 short、 char 或者 byte。long,string 都不能作用于swtich。 47.当一个线程进入一个对象的一个synchronized方法后,其它线程是否可...

    ASP.NET的网页代码模型及生命周期

    在ASP.NET中,能够使用面向对象的思想和软件开发中的一些思想,例如封装、派生、继承以及高级的设计模式等。本章首先介绍ASP.NET中最重要的概念---网页代码模型。 4.1 ASP.NET的网页代码模型 在ASP.NET应用程序开发...

    ExtAspNet v2.2.1 (2009-4-1) 值得一看

    -一个典型应用,在Window控件中打开新页面,如果传递的参数不正确,则首先提示参数不对然后关闭此弹出窗口。 -ExtAspNet.Alert.Show("参数错误!", String.Empty, ExtAspNet.ActiveWindow.GetCloseReference());...

    ExtAspNet_v2.3.2_dll

    -一个典型应用,在Window控件中打开新页面,如果传递的参数不正确,则首先提示参数不对然后关闭此弹出窗口。 -ExtAspNet.Alert.Show("参数错误!", String.Empty, ExtAspNet.ActiveWindow.GetCloseReference());...

Global site tag (gtag.js) - Google Analytics