c# 不同窗体之间传值和调用
1.子窗体事件刷新父窗体界面值
子窗体定义委托和事件
//声明一个委托
public delegate void DisplayUpdateDelegate(string str);
//声明事件
public event DisplayUpdateDelegate ShowUpdate;
private void Form2_Load(object sender, EventArgs e)
{ } private void button1_Click(object sender, EventArgs e)
{
if (ShowUpdate != null)
{
ShowUpdate(textBox1.Text.ToString());
}
}
父窗体
private void button3_Click(object sender, EventArgs e)
{
Form2 _frm2 = new Form2();
_frm2.ShowUpdate += new Form2.DisplayUpdateDelegate(ShowMessage);
_frm2.Show();
} private void ShowMessage(string str)
{
textBox1.Text = str;
}
2.父窗体的事件刷新子窗体的值
父窗体代码
public delegate void ChangeSonWindowDelegate(string str);
ChangeSonWindowDelegate _changeSonWindow;
private void button1_Click(object sender, EventArgs e)
{ Form2 _frm2 = new Form2();
_changeSonWindow = new ChangeSonWindowDelegate(_frm2.ShowMessage);
_frm2.Show(); } private void button2_Click(object sender, EventArgs e)
{ _changeSonWindow(textBox1.Text); }
子窗体代码
public void ShowMessage(string str)
{
textBox1.Text = str; }
3.父窗体调用子窗体的方法。子窗体一定得是显示状态。
父窗体
Form2 _frm;
private void button1_Click(object sender, EventArgs e)
{
timer1.Interval = ;
timer1.Enabled = true;
_frm = new Form2();
_frm.ShowDialog(); } private void timer1_Tick(object sender, EventArgs e)
{ _frm.WriteLog("调用子窗体方法2222");
}
子窗体
public void WriteLog(string str)
{
Console.WriteLine(str);
}
4.子窗体值->父窗体
父窗体
private void button1_Click(object sender, EventArgs e)
{
Form2 myFrm = new Form2();
if(myFrm.ShowDialog()==DialogResult.OK)
{
string boyName = myFrm.BoyName;
int age = myFrm.Age;
}
}
子窗体
private string _boyName;
private int _age; public string BoyName { get => _boyName; set => _boyName = value; }
public int Age { get => _age; set => _age = value; } private void button1_Click(object sender, EventArgs e)
{
BoyName = "jim";
Age = ;
this.DialogResult = DialogResult.OK;
}
5.跳出子窗体,在子窗体上实时显示信息
父窗体
ShowRunning(true);
ShowRunningMsg("正在扫描中,请耐心等待......");
关闭子窗体 ShowRunning(false);
private delegate void ShowRunningDelegate(bool isShow);
private void ShowRunning(bool isShow)
{
ShowRunningDelegate _showRunning = new ShowRunningDelegate(ShowRunningMethod);
this.Invoke(_showRunning, new object[] { isShow});
}
FrmRunning _FrmRunning;
public delegate void ShowRunningMsgDelegate(string msg);
ShowRunningMsgDelegate ShowRunningMsg;
private void ShowRunningMethod(bool isShow)
{
if (isShow)
{
_FrmRunning = new FrmRunning();
ShowRunningMsg = new ShowRunningMsgDelegate(_FrmRunning.ShowRuningMsg);
_FrmRunning.Show();
}
else
{
if (_FrmRunning != null)
{
_FrmRunning.Close();
}
}
}
子窗体
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms; namespace BlueToothATE
{
public partial class FrmRunning : Form
{
public FrmRunning()
{
InitializeComponent(); } private void FrmRunning_Load(object sender, EventArgs e)
{ } public void ShowRuningMsg(string msg)
{
lblMsg.Text = msg;
} }
}
c# 不同窗体之间传值和调用的更多相关文章
- windows form (窗体) 之间传值小结
windows form (窗体) 之间传值小结 windows form (窗体) 之间传值小结 在windows form之间传值,我总结了有四个方法:全局变量.属性.窗体构造函数和deleg ...
- c# 日常记录,(获取系统时间、return),一些文件隐藏无法引用,c#多个窗体之间传值
1.获取系统时间 DateTime.Now.ToString(); DateTime dt =DateTime.Now; dt.AddDays(1); //增加一天 dt.AddDays(-1);// ...
- winform窗体 小程序【打开多个窗体、窗体之间传值、打开唯一窗体】
1.打开多个窗体 2.窗体之间的传值 3打开唯一窗体
- C#使用事件方式Winform窗体之间传值
[摘自:http://www.cnblogs.com/codeToUp/p/5371062.html] 工程的源代码地址:https://github.com/yes-or-no/WinFormTra ...
- 多窗体及窗体之间传值 以及listview的使用
三中打开窗口窗体状态: 1 messagebox.show 类型 特点: 从窗口form 1里打开另一个窗体form2,form2不关闭的情况下form1 不能操作:代码如下: private ...
- 观察者模式的应用:Winform窗体之间传值
观察者模式的应用:Winform窗体传值 观察者模式的概念: 定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并更新. 今天我们就学着用一下这个观察者模式,先想象 ...
- WinForm窗体之间传值
当程序需要将一个窗体中的一些信息传给另一个窗体并让其使用时,就需要用到这个知识点 方法一:通过接受参数的窗体的构造函数传值 例:现有Form1和Form2两个窗体,二者都包含一个文本框,Form1还包 ...
- WinForm 与WPF 窗体之间的想到调用
先放置一个容器控件,并设计 好WinForm(或WPF)窗口 winform 调用 wpf ElementHost el = new ElementHost(); el.Dock = DockStyl ...
- winform两个窗体之间传值(C#委托事件实现)
委托 定义一个委托,声明一个委托变量,然后让变量去做方法应该做的事. 委托是一个类型 事件是委托变量实现的 经典例子:两个winform窗体传值 定义两个窗体:form1和form2 form1上有一 ...
随机推荐
- PyCharm3.0默认快捷键(翻译的)
PyCharm3.0默认快捷键(翻译的) PyCharm Default Keymap 1.编辑(Editing) Ctrl + Space 基本的代码完成(类.方法.属性)Ctrl + Alt ...
- 豪斯课堂K先生全套教程淘宝设计美工第一期+第四期教程(无水印)
第一期课程包括 <配色如此简单> <配色的流程><对称之美>第二期课程包括 <字体的气质及组合><平衡及构图形式><信息的筛选与图片的 ...
- HtmlUnit初探
HtmlUnit是一个用java实现的浏览器,是一个无界面的浏览器(headless browser),跟phatomJS好像是同一类事物. HtmlUnit基于apache httpClient,而 ...
- 利用ucenter整合discuz数据
由于项目需要,需要用到discuz论坛用户的数据,所以想到利用ucenter获取数据.以下为整合ucenter的过程. 1.首先你需要下载官方demo:http://faq.comsenz.com/l ...
- 一些js 插件的作用
前言: 从一些开源网站上下载下来的 后台管理系统模板一般会有很多的js ,其js 的功能是什么呢?这里随手查询了一下,记录下来 正文: 1.zDialog.js 各种弹窗插件详细案例:http://w ...
- Xshell远程管理Linux
Xshell[1]是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 协议. Xshell 通过互联网到远程主机的安全连接以及它创新 ...
- 表格不被内容撑大,且超出的内容变为省略号(css)
今天写代码,发现表格会被内容撑大,影响到了网页的整体布局. 百度了一解决方法,下面是代码和我的备注 table{table-layout: fixed;} //固定表格 table td ...
- java进行文件上传,带进度条
网上看到别人发过的一个java上传的代码,自己写了个完整的,附带源码 项目环境:jkd7.tomcat7. jar包:commons-fileupload-1.2.1.jar.commons-io-1 ...
- <<< Oracle系统参数命令、服务进程、默认用户
系统参数命令 1.ALTER SYSTEM SET nls_language=american; //设置环境语言为英文 2.SHOW PARAMETER p_name; //显示系统参数 db_na ...
- <<< chm格式文件打不开及一些问题
CHM 意为 Compiled HTML.以CHM为扩展名的文件图标通常为一个带问号的文档图标,表示帮助文档,是 Microsoft 自 Windows 98 以来提供的一种帮助文档格式的文件,用于替 ...