1.通过tag属性传输,tag属性是存储与空间密切相关的数据。比如登陆界面的数据传输给主界面。

子窗体                                                                        主窗体

        

定义一个类

namespace FrmLogin
{public class User{public string UserName { set; get; }public string PassWorld { set; get; }}
}

子窗体.cs

private void buttonLogin_Click(object sender, EventArgs e){User user = new User();user.UserName = this.textBoxName.Text.Trim();user.PassWorld = this.textBoxPassWorld.Text;this.Tag = user;this.DialogResult = DialogResult.OK;}

父(主)窗体.cs

private void FormMain_Load(object sender, EventArgs e){FormLogin frm = new FormLogin();if (frm.ShowDialog() == DialogResult.OK){User user = frm.Tag as User;this.Text += string.Format("--欢迎您:{0}", user.UserName);}else{frm.Close();}}

2.创建一个类,相当于创建了全局共享的静态变量,然后大家都来访问这个静态变量。

全局类.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;namespace FrmLogin
{public class ConText{public static User UserLogin = null;}
}

子窗体.cs

private void buttonLogin_Click(object sender, EventArgs e){User user = new User();user.UserName = this.textBoxName.Text.Trim();user.PassWorld = this.textBoxPassWorld.Text;//this.Tag = user;
ConText.UserLogin = user;this.DialogResult = DialogResult.OK;}

主窗体.cs

        private void FormMain_Load(object sender, EventArgs e){FormLogin frm = new FormLogin();if (frm.ShowDialog() == DialogResult.OK){// User user = frm.Tag as User;User user = ConText.UserLogin;this.Text += string.Format("--欢迎您:{0}", user.UserName);}else{frm.Close();}}

3.利用子窗体tag属性

子窗体.cs

 private void buttonLogin_Click(object sender, EventArgs e){User user = new User();user.UserName = this.textBoxName.Text.Trim();user.PassWorld = this.textBoxPassWorld.Text;FormLogin main = this.Owner as FormLogin;if (main == null){MessageBox.Show("LOGIN窗体没有Owner,请检查代码!!");}main.Tag = user;this.DialogResult = DialogResult.OK;}

父窗体.cs

 private void FormMain_Load(object sender, EventArgs e){FormLogin frm = new FormLogin();if (frm.ShowDialog(this) == DialogResult.OK)//这儿一定要加this
            {User user = this.Tag as User;this.Text += string.Format("--欢迎您:{0}", user.UserName);}else{frm.Close();}}

转载于:https://www.cnblogs.com/youthshouting/p/4361036.html

Winfrom窗体间传值相关推荐

  1. Pyqt 窗体间传值

    窗体间传值网上有好多方法,比如新建文件,先将子类窗体的数据传到文件中,父窗体读取文件.  Signal&Slot机制进行传值 等等 在这里,我们就举个采用apply方法:Signal& ...

  2. 构造函数实现窗体间传值

    ///Form1.cs the form contains a textbox and a button using System; using System.Collections.Generic; ...

  3. (C#)WinForm窗体间传值

    1.通过构造函数 特点:传值是单向的(不可以互相传值),实现简单 实现代码如下: 在窗体Form2中 int value1; string value2; public Form2 ( int val ...

  4. 用委托实现窗体间传值

    1.新建一个工程.在Form1中添加一个Label和一个Button.新建一个事件类,让它有一个string 类型的属性,用于传值. 1 ///ReturnValueEventArgs.cs  2 u ...

  5. C# 窗体间传值(使用委托与自定义事件)

    using System; using System.Drawing; using System.Windows.Forms; namespace 跨窗体调用控件 { public partial c ...

  6. 窗体间传值和窗体间互操作

    今天遇到一个非常棘手的问题:子窗体在关闭时传递一个对象给父窗体.窗体关闭时会发生数据验证,当数据不正确时,窗体不可关闭. 由于编写之初总在思考一个完美的办法,导致代码总无法通过,最后,不得不使用最笨拙 ...

  7. 利用事件进行窗体间传值

    为什么80%的码农都做不了架构师?>>>    举例,现在有两个窗体,SelectForm窗体查询信息集合,使用DataGridview显示信息集合,EditForm窗体添加和修改信 ...

  8. WFA程序C#窗体间传值

    首先定义两个Form,一个为Form1,一个为Form2,其中Form1作为父窗口,Form2作为子窗口 1.父窗口传值给子窗口 Form1中代码: public Form1() { Initiali ...

  9. QT实现串口调试助手(七):字体设置面板创建及窗体间传值

    上一篇: QT实现串口调试助手(六):页面布局 QT串口工具相关文章链接 一般串口调试工具都有修改串口接收框字体的功能面板,我们也来加一个: 1.先创建一个字体设置面板 比如我们创建一个widget, ...

最新文章

  1. [NOI 2015]荷马史诗
  2. oracle查看表和索引碎片,Oracle 表空间索引存储与碎片检查
  3. 神经网络模拟条件反射
  4. Smarty foreach
  5. c++中堆、栈内存分配概念示例讲解
  6. 在windows下,编译可访问https的libcurl静态库过程
  7. 10个开源工业检测数据集汇总
  8. 基于Confluent+Flink的实时数据分析最佳实践
  9. 数字超材料uv坐标matlab,基于数字编码超材料和压缩感知的实孔径雷达成像方法与流程...
  10. MATLAB机器人工具箱的下载与安装
  11. (仅对于普通12分频的51单片机而言)机器周期,时钟周期,晶振振荡频率(fosc)的关系;(51、32通用)分频的原理和作用
  12. 快速入门基于区块链的BPM系统--汇流BPM
  13. ZCMU-1428: Bit++ (水)
  14. 找工作神器,提取各大网站有效的招聘信息(前程无忧、智联招聘、猎聘网)...
  15. torch.meshgrid 使用探究
  16. php7 kernel32,usleep()
  17. python读取pdf文件并转换成txt文件
  18. java zip压缩解压_JAVA实现实用的ZIP压缩与解压
  19. 迅雷看看看电影,画面是绿色的,不能看
  20. 二层广播(帧广播)和三层广播(路由器广播)有什么区别?

热门文章

  1. 使用 HTMLTestRunner.py
  2. 你的灯亮着吗?阅读笔记之一
  3. SpringMVC_文件上传
  4. 线性表---顺序表链表
  5. 吴恩达Coursera机器学习 - Chapter 1 引言
  6. 以太坊是什么 - 以太坊开发入门指南
  7. AngularJS 无限滚动加载数据控件 ngInfiniteScroll
  8. kvm安装完全版 rhel6
  9. 老男孩Linux学习 -- 关于添加第二块磁盘的那些事
  10. Asp.Net customErrors与httpErrors的区别