C#实现子窗体与父窗体通信方法实例总结
本文实例总结了C#子窗体与父窗体通信方法。分享给大家供大家参考。具体如下:
【第一种方法:】
第一步:
创建接口IForm,父窗体继承这个接口
public interface IForm { void RefreshForm(); }
第二步:
父窗体实现接口中的方法,在实现接口的方法中写入刷新代码
Form2 f = new Form2(); f.Owner = this; f.ShowDialog();
第三步:
在子窗体中调用,刷新的方法
(this.Owner as IForm).RefreshForm();
【第二种方法:】
1.父窗体中定义刷新的方法RefreshForm()
2.在点击的事件Show出子窗体的时候,代码如下:
Form form=new Form(); form.Show(this);
3.在子窗体的点击事件中,代码如下:
(this.Owner as Form).RefreshForm();
【第三种方法:】
通过事件解决方法:
子窗体中定义:
public delegate void sendmessage(string message); public event sendmessage SendTo ;
主窗体:
ChildForm frm = new ChildForm(); frm.SendTo += new ChildForm.sendmessage(SendArgs); frm.ShowDialog(this); private void SendArgs(string Message)//主窗体接收消息 {MessageBox.Show( "主窗体已收到消息: " + Message);}
子窗体测试:
if (this.SendTo != null) this.SendTo( "主窗体收到了吗? ");
【第四种方法:】
通过引用:
下例演示怎样通过引用类型实现你的功能:
子窗体中定义:
protected MainForm ParentFrom = null;//主窗体
新构造函数:
public ChildForm(MainForm parent) { InitializeComponent(); this.ParentFrom = parent;//引用 }
主窗体中某Click:
ChildForm frm = new ChildForm(this); frm.ShowDialog(this);
子窗体测试:
void ...Click(....) { this.Text = "测试引用 "; if (this.ParentFrom != null) this.ParentFrom.Text += "- " + this.Text;//....... }
希望本文所述对大家的C#程序设计有所帮助。
相关推荐
-
C#简单实现子窗体向父窗体传值的方法
本文实例讲述了C#简单实现子窗体向父窗体传值的方法.分享给大家供大家参考.具体如下: 击Form1的button1 打开Form2 再点击Form2的button2 在button2_Click事件中 通过this.Owner将Form2的textBox2的值设置给Form1的textBox1 并关闭Form2 public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void bu
-
C#设置子窗体在主窗体中居中显示解决方案
问题的开始是由C#传传看主群里的印醒提出来的,下面我来说一下解决方案吧 其实表面上看是很简单的 开始吧,现在有两个窗体Form1主窗体,Form2子窗体 而且我相信大部分人都会这样写 在子窗体的Load事件中 这样写 复制代码 代码如下: this.StartPosition = FormStartPosition.CenterParent; 其实这样写是不对的,正确的写法应该是 复制代码 代码如下: this.StartPosition = FormStartPosition.CenterSc
-
C#最简单的关闭子窗体更新父窗体的实现方法
主窗体Form1关键代码: 将子窗体最为对话框模式弹出,当窗体关闭或取消时更新主窗体 复制代码 代码如下: private void simpleButton1_Click(object sender, EventArgs e) { Form2 f2 = new Form2(); f2.Owner = this; DialogResult result=f2.ShowDialog(); if (result == DialogResult.Cancel) { this.gridControl1.
-
C#,winform,ShowDialog,子窗体向父窗体传值
调用showdialog方法后,调用代码被暂停执行,等到调用showdialog方法的窗体关系后再继续执行.而且窗体可以返回一个dialogresult值,他描述了窗体关闭的原因,例如OK,Cancel,yes,no等.为了让窗体返回一个dialogresult,必须设置窗体的dialogresult值,或者在窗体的一个按钮上设置dialogresult属性. 例子: 下面是子窗体代码,要求输入phone,然后会返回给父窗体. using System; using System.Collect
-
C#实现winform用子窗体刷新父窗体及子窗体改变父窗体控件值的方法
本文实例讲述了C#实现winform用子窗体刷新父窗体及子窗体改变父窗体控件值的方法.分享给大家供大家参考.具体如下: 第一种方法: 用委托,Form2和Form3是同一组 Form2 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows
-
WinForm子窗体访问父窗体控件的实现方法
Form1主窗体: 复制代码 代码如下: public delegate void SetVisiableHandler();//定义委托类型 private void button1_Click(object sender,EventArgs e)//单击事件,打开子窗体{ Form2 frm = new Form2(new SetVisiableHandler(SetVisiable)); frm.Show();} private void SetVisiable(){ d
-
C#设置MDI子窗体只能弹出一个的方法
Windows程序设计中的MDI(Multiple Document Interface)官方解释就是所谓的多文档界面,与此对应就有单文档界面 (SDI), 它是微软公司从Windows 2.0下的Microsoft Excel电子表格程序开始引入的,Excel电子表格用户有时需要同时操作多份表格,MDI正好为这种操作多表格提供了很大的方便,于是就产生了MDI程序. 新建一个WindowForm程序.得到一个窗体作为我们父窗体Parent.拖入一个menustrip空间.在新建一个窗体FrmCh
-
C# Winform 子窗体访问父级窗体的控件和属性
今天在做一个联系人管理的C#设计时,遇到了这个问题,我需要将父窗体中的textBox中的值传到子窗体并进行数据库查询操作,我用了new 父窗体().textBox.text;来进行值传递,然而并无卵用,经过多次试验,找到了一个比较简单的解决方法: 一.子窗体调用父窗体的静态变量 父窗体:Logout 子窗体:Affirm 父窗体文本框:tB_Logout_Username public partial class Logout : Form { //定义一个静态变量存放父窗体中的文本框的值 pu
-
C#实现子窗体与父窗体通信方法实例总结
本文实例总结了C#子窗体与父窗体通信方法.分享给大家供大家参考.具体如下: [第一种方法:] 第一步: 创建接口IForm,父窗体继承这个接口 public interface IForm { void RefreshForm(); } 第二步: 父窗体实现接口中的方法,在实现接口的方法中写入刷新代码 Form2 f = new Form2(); f.Owner = this; f.ShowDialog(); 第三步: 在子窗体中调用,刷新的方法 复制代码 代码如下: (this.Owner a
-
vue父子组件的通信方法(实例详解)
一.父组件向子组件传递数据 1.首先形成父子组件关系 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <script src="../js/vue.js"></script> </head> <body>
-
vuejs中父子组件之间通信方法实例详解
本文实例讲述了vuejs中父子组件之间通信方法.分享给大家供大家参考,具体如下: 一.父组件向子组件传递消息 // Parent.vue <template> <div class="parent"> <v-child :msg="message"></v-child> </div> </template> <script> import VChild from './child.v
-
asp.net子窗体与父窗体交互实战分享
今天在项目上遇到了这个问题,其实只是window.returnValue的简单应用,不是asp.net的专属内容.作为积累,记录一个简单的实现模型. 图1 用到的文件 从图1中我们可以看到,只用到了两个页面,其中Default.aspx作为父页面,Default2.aspx作为子页面被弹出.Default.aspx页面上有两个TextBox一个Button,代码如下: 复制代码 代码如下: <%@ Page Language="C#" AutoEventWireup="
-
子窗体与父窗体传值示例js代码
复制代码 代码如下: //返回值给父窗体 function returnParent(value) {//获取子窗体返回值 var parent = window.dialogArguments; //获取父页面 //parent.location.reload(); //刷新父页面 if (parent != null && parent != "undefined") { window.returnValue = value; //返回值 window.close(
-
JQuery操作iframe父页面与子页面的元素与方法(实例讲解)
JQUERY IFRAME下面简单使用Jquery来操作iframe的一些记录,这个使用纯JS与可以实现. 第一.在iframe中查找父页面元素的方法:$('#id', window.parent.document) 第二.在父页面中获取iframe中的元素方法:$(this).contents().find("#suggestBox") 第三.在iframe中调用父页面中定义的方法和变量:parent.methodparent.value iframe里用jquery获取父页面bod
-
iframe子页面与父页面在同域或不同域下的js通信
iframe子页面与父页面通信根据iframe中src属性是同域链接还是跨域链接,通信方式也不同. 一.同域下父子页面的通信 父页面parent.html 复制代码 代码如下: <html> <head> <script type="text/javascript"> function say(){ alert("parent.html"); } function callChild(){ myFrame.window.say()
-
vue2.0父子组件及非父子组件之间的通信方法
1.父组件传递数据给子组件 父组件数据如何传递给子组件呢?可以通过props属性来实现 父组件: <parent> <child :child-msg="msg"></child>//这里必须要用 - 代替驼峰 </parent> data(){ return { msg: [1,2,3] }; } 子组件通过props来接收数据: 方式1: props: ['childMsg'] 方式2 : props: { childMsg: Arr
-
嵌入式iframe子页面与父页面js通信的方法
本文实例讲述了嵌入式iframe子页面与父页面js通信的方法.分享给大家供大家参考.具体分析如下: iframe框架中的页面与主页面之间的通信方式根据iframe中src属性是同域链接还是跨域链接,有明显不同的通信方式,同域下的数据交换和DOM元素互访就简单的多了,而跨域的则需要一些巧妙的方式来实现通信. 一.同域下父子页面的通信 父页面 parent.html: 复制代码 代码如下: <html> <head> <script type="text/javascr
-
js判断子窗体是否关闭的方法
本文实例讲述了js判断子窗体是否关闭的方法.分享给大家供大家参考.具体如下: function InsideMessageAdd() { //window.open()得到子窗体 tip = OpenDialog('UploadFile.html?tp=nbtz', 'msg', 650, 180); //启动timer,判断子窗体是否关闭 timer = window.setInterval("IfWindowClosed()", 500); } var timer; var tip
随机推荐
- Angular2自定义分页组件
- windows 权限之拒绝运行应用程序
- C#检查foreach判读是否为null的方法
- PHP生成图像验证码的方法小结(2种方法)
- 详解web存储中的storage
- Vue.js教程之计算属性
- Notification消息通知 自定义消息通知内容布局
- 使用JS读秒使用示例
- Node.js 回调函数实例详解
- 修改jQuery.Autocomplete插件 支持中文输入法 避免TAB、ENTER键失效、导致表单提交
- python列表的常用操作方法小结
- 使用jQuery的ajax功能实现的RSS Reader 代码
- Android 中通过实现线程更新Progressdialog (对话进度条)
- iOS9中的WebKit 与 Safari带来的惊喜
- asp.net用三层实现多条件检索示例
- PHP验证终端类型是否为手机的简单实例
- php时间戳转换的示例
- 浅谈webpack打包过程中因为图片的路径导致的问题
- Vue实现todolist删除功能
- Python中的十大图像处理工具(小结)