Winfrom窗体间传值
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();
}
}
Winfrom窗体间传值的更多相关文章
- Pyqt 窗体间传值
窗体间传值网上有好多方法,比如新建文件,先将子类窗体的数据传到文件中,父窗体读取文件. Signal&Slot机制进行传值 等等 在这里,我们就举个采用apply方法:Signal& ...
- C# winform窗体间传值(使用委托或事件)
窗体间传值 今天得空,刚好看到网上好多人再找winform窗体间传值的问题,由于昨天项目的优化的感觉不错,就写了个C# winform窗体间传值的demo,希望能给需要的人的带来帮助: 工程的源代码地 ...
- 【转】WinForm窗体显示和窗体间传值
以前对WinForm窗体显示和窗体间传值了解不是很清楚 最近做了一些WinForm项目,把用到的相关知识整理如下 A.WinForm中窗体显示 显示窗体可以有以下2种方法: Form.ShowDial ...
- C#利用事件与委托进行窗体间传值简单小例子
本篇博客是利用C#委托与事件进行窗体间传值的简单小例子 委托与事件的详细解释大家可以参照张子阳的博客: http://www.tracefact.net/CSharp-Programming/Dele ...
- QT窗体间传值总结之Signal&Slot
在写程序时,难免会碰到多窗体之间进行传值的问题.依照自己的理解,我把多窗体传值的可以使用的方法归纳如下: 1.使用QT中的Signal&Slot机制进行传值: 2.使用全局变量: 3.使用pu ...
- C#窗体间传值的简便方法/工具
一.问题:窗体间传值必须需要窗体之间有联系,具体有如下方式 窗体间传值涉及到窗体A必须拥有窗体B,这样才可以实现A-B之间传值 窗体A与窗体B在窗体/实例C中,A-B可互相通讯 其他方式,不细讨论,复 ...
- winform 窗体间传值
WinForm 两窗体之间传值实例 2010-12-27 22:10:11| 分类: 学业|举报|字号 订阅 下载LOFTER我的照片书 | 窗体Form1和Form2 Form2 ...
- ASP.NET 窗体间传值实现方法详解
假设ParentForm.aspx 页面上有TextBox1文本框和Open按钮点击Open按钮弹出SubForm.aspx,SubForm.aspx页面上有TextBox1文本框和Close按钮点击 ...
- (C#)WinForm窗体间传值
1.通过构造函数 特点:传值是单向的(不可以互相传值),实现简单 实现代码如下: 在窗体Form2中 int value1; string value2; public Form2 ( int v ...
随机推荐
- Android 数据库升级中数据保持和导入已有数据库
一.数据库升级: 在我们的程序中,或多或少都会涉及到数据库,使用数据库必定会涉及到数据库的升级,数据库升级带来的一些问题,如旧版本数据库的数据记录的保持,对新表的字段的添加等等一系列问题,还记得当我来 ...
- POJ3347:Kadj Squares——题解
http://poj.org/problem?id=3347 题目大意:给定一些正方形的边长,让他们尽可能向左以45°角排列(不能互相重合),求在上面看只能看到哪几个正方形. ———————————— ...
- HDU3480:Division——题解
http://acm.hdu.edu.cn/showproblem.php?pid=3480 将一列数划分成几个集合,这些集合的并集为该数列,求每个数列的(最大值-最小值)^2的和的最小值. 简单的d ...
- Myhchael原创题系列 Mychael vs Kid 【题解】
题目链接 Mychael vs Kid 题解 先说说这题的由来及前身 前身 首先有一个很经典的题目: 维护区间加,查询区间\(gcd\) 如果强行用线段树维护的话,区间加之后就没法直接确定当前区间的\ ...
- 【逆序对相关/数学】【P1966】【NOIP2013D1T2】 火柴排队
传送门 Description 涵涵有两盒火柴,每盒装有 $n$ 根火柴,每根火柴都有一个高度. 现在将每盒中的火柴各自排成一列, 同一列火柴的高度互不相同, 两列火柴之间的距离定义为:$ \sum ...
- 【链表】【UVA11988】Broken Keyboard
传送门 明明是道黄题我竟然来写博客……我真的是什么数据结构也不会写了 Description 你在输入文章的时候,键盘上的Home键和End键出了问题,会不定时的按下.你却不知道此问题,而是专心致志地 ...
- Linux之socket套接字编程20160704
介绍套接字之前,我们先看一下传输层的协议TCP与UDP: TCP协议与UDP协议的区别 首先咱们弄清楚,TCP协议和UCP协议与TCP/IP协议的联系,很多人犯糊涂了,一直都是说TCP/IP协议与UD ...
- JS传递中文参数出现乱码的解决办法
一.window.open() 乱码: JS中使用window.open("url?param="+paramvalue)传递参数出现乱码,提交的时候,客户端浏览器URL中显示参数 ...
- 背景建模技术(二):BgsLibrary的框架、背景建模的37种算法性能分析、背景建模技术的挑战
背景建模技术(二):BgsLibrary的框架.背景建模的37种算法性能分析.背景建模技术的挑战 1.基于MFC的BgsLibrary软件下载 下载地址:http://download.csdn.ne ...
- Uva-oj Palindromes 暴力
Palindromes Time Limit:3000MS Memory Limit:0KB 64bit IO Format:%lld & %llu Submit Statu ...